SICP Exercise 1.8
Simply implementing Newton’s method of calculating cube roots.
(define (cube-iter guess x) (if (good-enough? guess x) guess (cube-iter (improve guess x) x))) (define (improve y x) (/ (+ (/ x (* y y)) (* 2 y)) 3)) (define (good-enough? guess x) (< (abs (- (cube guess) x)) 0.0001)) (define (cube x) (* x x x)) (define (cbrt x) (cube-iter 1.0 x))
Although this program suffers from the same issue we faced in exercise 1.7. That can be easily remedied by changing the good enough program procedure.
(define (good-enough? guess x) (< (/ (cube guess) x) 0.0001))