sicp 练习1.7

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

(define (sqrt-iter guess x)
     (if (good-enough? guess x)
         guess
         (sqrt-iter (improve guess x)
                     x)))
(define (good-enough? guess x)
     (<(/ (abs(- (improve guess x) guess)) guess) 0.00000000000000000000000000001))  //0多几个也没事,对这个困惑,精度是怎么处理的?
(define (improve guess x)
   (average guess (/ x guess))) 
           (define (average x y)  
               (/ (+ x y) 2))
          (define (square guess)
              (* guess guess ))

运行结果

> (mysqrt 2)
1.414213562373095(15位精度,而上面0.0000000…1那么多位都没事,困惑)
>

原文地址:https://www.cnblogs.com/jiangzhen/p/1662846.html