练习1.7

改进good-enough
监视猜测值在从一次迭代到下一次迭代的变化情况,当改变值相对于猜测值的比率很小时就结束。

#lang sicp
(define (sqrt-iter guess x)
  (if (good-enough? guess  x)
      guess
      (sqrt-iter (improve guess x)
                 x)))

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

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

(define (good-enough? guess x)
  (< (abs (- (improve guess x) guess))
     .001))

(define (abs x)
  (if (> x 0)
      x
      (- x)))

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

(define (sqrt x)
  (sqrt-iter 1.5 x))

发布了40 篇原创文章 · 获赞 7 · 访问量 1090

猜你喜欢

转载自blog.csdn.net/BobDay/article/details/103623760
1.7