SICP問題1.6
いきなりつまづいた。
(define (sqrt-iter y x) (if (good-enough y x) y (sqrt-iter (improve y x) x)))
のifを
(define (new-if predicate then-clause else-clause) (cond (predicate then-clause) (else else-clause)))
を使って置き換えた
(define (new-sqrt-iter y x) (new-if (good-enough y x) y (new-sqrt-iter (improve y x) x)))
がどういう動作をするかっていう問題だが…
何で無限ループにはまるのかわからない。
考えられるのは
(new-if (good-enough y x)
が常に#fになって再帰がループになってることだけど…
それとも、
帰ってくる値は関係なく再帰になってるのか?
ちなみに
(define (good-enough guess x) (< (abs (- (square guess) x)) 0.001))