(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