海伦平方根算法(LISP描述)
#lang racket
(define (average x y) (/ (+ x y) 2))
(define (square x) (* x x))
(define (abs x) (if (< x 0) (- x) x))
(define (improve guess x) (average guess (/ x guess)))
(define (good-enough? guess x) (< (abs (- (square guess) x)) 0.000000001))
(define (try guess x)
(if (good-enough? guess x)
guess
(try (improve guess x) x)))
(define (sqrt x) (try 1 x))
(sqrt 2)