summaryrefslogtreecommitdiff
path: root/coding-exercises/1/46.rkt
blob: ffb625c8dd8d4eb655289474173d01ceec212edf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#lang racket
(require "../../shared/chapter1.rkt")
(require sicp)

(define (sqrt x)
  ((iterative-improve
     (close-enough? 0.0001)
     (lambda (g)
       (/ (+ g (/ x g)) 2)))
   1.0))

(sqrt 2)

(define (fixed-point f first-guess)
  ((iterative-improve
     (close-enough? 0.0001)
     f)
   first-guess))

(define (root-finder x n damp-fold)
  (fixed-point
   (average-damp
     (lambda (y) (/ x (power y (- n 1))))
     damp-fold)
   1.0))

(root-finder 2 64 6)