sicp 1.7

牛顿法求平方根,实现good-enough?的另一种策略,监视猜测值从一次迭代到下一次迭代的变化情况:

 

(define (sqrt x)
  (sqrt-iter 1.0 0.5 x))

(define (sqrt-iter guess prev-guess x)
  (if (good-enough? guess prev-guess)
	  guess
	  (sqrt-iter (improve guess x) guess x)))

(define (good-enough? guess prev-guess)
  (< (/ (abs (- guess prev-guess)) prev-guess) 0.001))

(define (improve guess x)
  (average guess (/ x guess)))

(define (square x)
  (* x x))

(define (average x y)
  (/ (+ x y) 2))

你可能感兴趣的:(SICP)