当我根据我使用的数字运行代码时看到两种不同的行为时,我正在研究SICP书的练习1.6的解决方案。
如果我在调用sqrt-iter过程时使用自然数,则解释器永远不会停止,但是当我使用浮点数强制进行小数除法时,解释器会响应:中止!:超出最大递归深度。
有谁知道不同行为的原因?
我总结了我的答案,以帮助任何想要运行代码的人,只需复制&粘贴:http://bit.ly/Qv1wru。 mit-scheme版本是9.1.1。
答案 0 :(得分:1)
您的good-enough?
程序似乎有误,请尝试使用此程序:
(define (good-enough? guess x)
(< (abs (- (sqr guess) x)) 0.001))