#lang sicp (define (iterative-improve good-enough? improve) (define (rec-procedure guess) (define new-guess (improve guess)) (if (good-enough? guess new-guess) new-guess (rec-procedure new-guess))) rec-procedure) (define (square x) (* x x)) (define (average a b) (/ (+ a b) 2)) (define (sqrt x) (define tolerance 0.000001) (define (good-enough? guess) (< (abs (- (square guess) x)) tolerance)) (define (improve guess) (average guess (/ x guess))) (iterative-improve good-enough? improve))