問題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