summaryrefslogtreecommitdiff
path: root/coding-exercises/1/36.rkt
diff options
context:
space:
mode:
Diffstat (limited to 'coding-exercises/1/36.rkt')
-rw-r--r--coding-exercises/1/36.rkt33
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)