20May/090
Exercise 1.8 of SICP
(define (square x) (* x x)) (define (great-enough? guess newguess) (< (abs (- 1 (/ guess newguess))) 0.0001)) (define (improve guess x) (/ (+ (/ x (square guess)) (* 2 guess)) 3)) (define (cube-root guess x) (if (great-enough? guess (improve guess x)) guess (cube-root (improve guess x) x)))
> (cube-root 1.0 8)
2.000004911675504
> (cube-root 1.0 1e9)
1000.0162369748963