Код Ревью

Сравни свои решения

    #| BEGIN (Write your solution here) |#
;fixed-point
(define tolerance 0.00001)

(define (fixed-point f first-guess) 
  (define (close-enough? v1 v2) 
    (< (abs (- v1 v2)) tolerance))
  (define (try guess) 
    (let ((next (f guess))) 
      (if (close-enough? guess next) 
          next 
          (try next)))) 
  (try first-guess))
 
;average-damp
(define (average a b)
  (/ (+ a b) 2.0))

(define (average-damp f)
  (lambda (x)
    (average x (f x))))

;compose
(define (compose f g)
  (lambda (x) (f (g x))))

(define (self x) x)

;repeated
(define (repeated f n)
  (if (<= n 0)
      self
      (compose f (repeated f (- n 1)))))
;pow 
(define (pow d p)
  (if (<= p 0)
      1
      (* d (pow d (- p 1)))))

;damp-clunt from ai
(define (damp-count n)
  (if (<= n 2)
      1
      (+ 1 (damp-count (/ n 2)))))

;nth-root
(define (nth-root n)
  (lambda (x)
    (fixed-point 
     ((repeated average-damp (damp-count n))
      (lambda (y)
        (/ x (pow y (- n 1)))))
     1.0)))
#| END |#