SICP 問題 3.64
(define (sqrt-improve guess x) (average guess (/ x guess))) (define (average x y) (/ (+ x y) 2)) (define (stream-limit s tolerance) (let ((s1 (stream-car s)) (s2 (stream-car (stream-cdr s)))) (if (> tolerance (abs (- s1 s2))) s2 (stream-limit (stream-cdr s) tolerance)))) (define (sqrt x tolerance) (stream-limit (sqrt-stream x) tolerance))
1.4142156862745097 gosh> (sqrt 2 0.0001) 1.4142135623746899