[archives] [homepage]

Problem 1.8
Friday, August 23, 2019; ago; Download .md

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))