(define (sqrt-iter guess x) (if (good-enough? guess x) guess (sqrt-iter (improve guess x) x))) (define (improve guess x) (average guess (/ x guess))) (define (average x y) (/ (+ x y) 2)) (define (square x) (* x x)) (define (good-enough? guess x) (< (abs (- (square guess) x)) 0.001)) (define (my-good-enough? guess prev-guess) (< (abs (- guess prev-guess)) (/ guess 100000))) (define (my-sqrt-iter guess prev-guess x) (if (my-good-enough? guess prev-guess) guess (my-sqrt-iter (improve guess x) guess x))) (define (my-sqrt x) (my-sqrt-iter 1.0 (improve 1.0 x) x)) (define (sqrt x) (sqrt-iter 1.0 x))