(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那么多位都没事,困惑)
>