1.42
1.43
1.44
1.45
1.46
(define (my-compose f g)
(lambda (x)
(f (g x))))
(define (inc x)
(+ x 1))
(define (square x)
(* x x))
((my-compose square inc) 6)
1.43
(define (my-compose f g)
(lambda (x)
(f (g x))))
(define (inc x)
(+ x 1))
(define (square x)
(* x x))
((my-compose square inc) 6)
(define (repeated f n)
(if (= n 1)
f
(compose f (repeated f (- n 1)))))
(define (my-repeated f n)
(lambda (x)
(if (= n 1)
(f x)
((my-compose f (my-repeated f (- n 1))) x))))
((repeated square 3) 5)
((my-repeated square 3) 5)
1.44
(define (square x)
(* x x))
(define (composed f g)
(lambda (x)
(f (g x))))
(define (repeated f n)
(if (= n 1)
f
(composed f (repeated f (- n 1)))))
(define dx 0.00001)
(define (smooth f)
(lambda (x)
(/ (+ (f (- x dx)) (f x) (f (+ x dx))) 3)))
(define (n-smooth n f)
((repeated smooth n) f))
((smooth square) 2)
((smooth (smooth square)) 2)
((smooth (smooth (smooth square))) 2)
((n-smooth 3 square) 2)
1.45
(define tolerance 0.00001)
(define dx 0.00001)
(define (square x)
(* x x))
(define (average a b)
(/ (+ a b) 2))
(define (composed f g)
(lambda (x)
(f (g x))))
(define (repeated f n)
(if (= n 1)
f
(composed f (repeated f (- n 1)))))
(define (fixed-point f first-guess)
(define (close-enough? v1 v2)
(< (abs (- v1 v2)) tolerance))
(define (try guess)
(let ((next (f guess)))
(newline)
(display next)
(if (close-enough? guess next)
next
(try next))
))
(try first-guess))
(define (power x n)
(if (= n 1)
x
(* x (power x (- n 1)))))
(define (times i)
(if (< i 2)
0
(+ 1 (times (/ i 2)))))
(define (average-damp f)
(lambda (x)
(average x (f x))))
(define (n-average-damp n f)
((repeated average-damp n) f))
(define (my-sqrt x)
(fixed-point (average-damp (lambda (y) (/ x y))) 1.0))
(define (my-sqrt-n x n)
(fixed-point (n-average-damp (- (times n) 1) (average-damp (lambda (y) (/ x (power y (- n 1)))))) 1.0))
;;(my-sqrt-n 64 3)
(my-sqrt-n 64 7)
(my-sqrt-n 64 8)
(my-sqrt-n 64 15)
(my-sqrt-n 64 31)
(my-sqrt-n 64 63)
1.46
(define (iterative-improve good-enough? improve)
(define (try-it x)
(if (good-enough? x)
x
(try-it (improve x))))
(lambda (x)
(try-it x)))
(define (sqrt x)
(define (good-enough? guess)
(< (abs (- (square guess) x)) 0.001))
(define (improve guess)
(average guess (/ x guess)))
((iterative-improve good-enough? improve) 1.0))
(sqrt 2)