問題1.7 をやって。。 ではなくて写してみる;;
(define (square x) (* x x)) ;(square 9)(define (sqrt-iter guess x) (if (good-enough? (improve guess x) guess) 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? imp guess) (< (abs (- imp guess)) 0.00001))
(define (sqrt x) (sqrt-iter 1.0 x))
(sqrt 0.001) (sqrt 90000000000000000000000000)
;大きい値を使用すると目標との差分が小さくならないため無限ループに陥る ;小さい値を使用すると、十分に差が小さくならないないうちに計算が終了してしまう
;■なお、わからなかったため ; 以下サイトを参考にしました ; http://d.hatena.ne.jp/knowledgetree/20100919/1284913496
moremagic
2013-05-17