首先不知道如何使用MIT Scheme的可以参考这里。下面是solution: (define allow-error 0.001) (define (improve guess x) (average guess (/ x guess))) (define (average x y) (/ (+ x y) 2)) (define (good-enough? guess x) (< (abs (- (square guess) x)) allow-error)) (define (square x) (* x x)) (define (sqrt-iter guess x) (if (good-enough? guess x) guess (sqrt-iter (improve guess x) x))) (define (good-enough-new? oldguess newguess) (< (/ (abs (- oldguess newguess)) newguess) allow-error)) (define (sqrt-iter-new oldguess newguess x) (if (good-enough-new? oldguess newguess) newguess (sqrt-iter-new newguess (improve newguess x) x))) (sqrt-iter-new 1 1.1 2) “至于用例子说明对很小和很大的书,这种检测都可能失败”这一问,我现在还不知道how to explain。