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