海伦平方根算法(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)
原文地址:https://www.cnblogs.com/pkuimyy/p/14117311.html