#lang scheme ; We dont have closures at the time of writing, but each func gets its own env ; http://sarabander.github.io/sicp/html/1_002e1.xhtml#g_t1_002e1_002e7 (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 (sqrt x) (sqrt-iter 1.0 x)) (display (sqrt 2))