sicp-solutions/chapter-1/ex-1.46.scm

24 lines
572 B
Scheme

#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))