#lang racket
(define (average x y) (/ (+ x y) 2))
(define (sqrt x)
(fixed-point
(lambda(y)(average (/ x y) y)) //在这里f=(lambda(y) (average (/ x y) y)) 这是一个没有名字的procedure
1))
(define (fixed-point f start) //fixed-pointer以procedure f和value start 为参数
(define tolerance 0.00001)
(define (close-envf? u v)
(< (abs(- u v)) tolerance))
(define (iter old new)
(if (close-envf? old new)
new
(iter new (f new))))
(iter start (f start)))
(define (sqrt x)
(fixed-point
(average-damp (lambda(y) (/ x y)))
1))
(define average-damp
(lamda(f)
(lamda(x) (average (f x) x))))