FJOM On The Run
Mis Bookmarks
Textpattern Forums
Textpattern
Bloglines
Ask Metafilter
Metafilter
Acabé el capítulo 4. Ultimamente no he podido avanzar en ruby ni en C#, pero por lo menos sigo con scheme.
;;4.4.1
;;interest : number->number
;;calcula el monto de interes ganado por a;o
(define (interest deposit)
(* deposit (interest-rate deposit)))
;;interest-rate: number->number
(define (interest-rate deposit)
(cond
[(<= deposit 1000) 0.04]
[(<= deposit 5000) 0.045]
[ else 0.05]))
;;4.4.2
;;tax: number->number
;;devuelve el impuesto que se debe de acuerdo a la paga bruta
(define (tax gross-pay)
(* gross-pay (tax-rate gross-pay)))
(define (tax-rate gross-pay)
(cond
[(<= gross-pay 240) 0]
[(<= gross-pay 480) .15]
[ else .28]))
;;netpay number->number
(define (netpay hours)
(- (gross-pay hours) (tax (gross-pay hours))))
;;gross-pay number->number
(define hourly-pay 12)
(define (gross-pay hours)
(* hours hourly-pay))
;;4.4.3
;;pay-back number->number
;;consumes charge amount and returns pay-back amount
(define (payback charge)
(cond
[(<= charge 500) (* charge 0.0025)]
[(<= charge 1500) (+ (payback 500) (* (- charge 500) 0.005))]
[(<= charge 2500) (+ (payback 1500) (* (- charge 1500) 0.0075))]
[ else (+ (payback 2500) (* (- charge 2500) 0.01))]))
;;tests
(= (payback 400) 1)
(= (payback 1400) 5.75)
;;4.4.4
;;how-many : number,number,number->number
;;determina cuantas soluciones tiene una ecuacion cuadratica
(define (how-many a b c)
(cond
[ (= a 0) 1000]
[ (> (sqr b) (* 4 (* a c))) 2]
[ (< (sqr b) (* 4 (* a c))) 0]
[ else 1]))
;tests
(= 2 (how-many 1 0 -1))
(= 1 (how-many 2 4 2))
Newer: HDTP Capitulo 5 | Home | Older: HTDP Capitulo 4
En línea desde hace 4 años, 8 meses, 23 dÃas, 10 horas y 10 minutos.