(define sqrt (lambda (x) (sqrt-iter 1 x))) (define sqrt-iter (lambda (G x) (if (good-enough? G x) G (sqrt-iter (improve G x) x)))) (define improve (lambda (G x) (average G (/ x G)))) (define average (lambda (a b) (/ (+ a b) 2))) (define good-enough? (lambda (G x) (< (abs (- (* G G) x)) .001)))