diff options
Diffstat (limited to 'coding-exercises/1/36.rkt')
| -rw-r--r-- | coding-exercises/1/36.rkt | 33 |
1 files changed, 9 insertions, 24 deletions
diff --git a/coding-exercises/1/36.rkt b/coding-exercises/1/36.rkt index a785d8a..98c6346 100644 --- a/coding-exercises/1/36.rkt +++ b/coding-exercises/1/36.rkt @@ -1,37 +1,22 @@ #lang racket +(require "../../shared/chapter1.rkt") (require sicp) -(define (fixed-point damper f first-guess) - (define (close-enough? v1 v2) - (< (abs (- v1 v2)) 0.0001)) - (define (try guess) - (let ((next (damper guess (f guess)))) - (newline) - (display next) - (if (close-enough? guess next) - next - (try next)))) - (try first-guess)) - -(define (golden-ratio) - (fixed-point - (lambda (x) (+ 1 (/ 1 x))) - 1.0)) +(golden-ratio) (define (log1000) (fixed-point - (lambda (guess next) - next) - (lambda (x) (/ (log 1000) (log x))) + (lambda (x) + (println x) + (/ (log 1000) (log x))) 2.0)) (define (log1000-average-damped) - (define (average a b) - (/ (+ a b) 2)) (fixed-point - (lambda (guess next) - (average guess next)) - (lambda (x) (/ (log 1000) (log x))) + (average-damp + (lambda (x) + (println x) + (/ (log 1000) (log x))) 1) 2.0)) (log1000) |
