Wednesday, June 3, 2009

Ex-1.46

(define (iterative-improve good-enough? improve-guess)
(define (proc guess)
(if (good-enough? guess) guess
(proc (improve-guess guess))))
proc)

;sqrt
(define (average x y)
(/ (+ x y) 2.0))
(define (sqrt x)
((iterative-improve
(lambda (guess)
(< (abs (- (square guess) x)) 0.001))
(lambda (guess)
(average guess (/ x guess)))) x))

;fixed-point
(define tolerance 0.00001)
(define (fixed-point f first-guess)
((iterative-improve
(lambda (guess)
(< (abs (- guess (f guess))) tolerance))
(lambda (guess) (f guess))) first-guess))

No comments:

Post a Comment