2015/12/11
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