牛顿法求平方根
common lisp实现
(defun square (x)
(* x x)
)
(defun abs (x)
(if (< x 0)
(- x)
x
)
)
(defun good-enough? (guess x)
(< (abs (- (square guess) x)) 0.001)
)
(defun average (x y)
(/ (+ x y) 2)
)
(defun improve (guess x)
(average guess (/ x guess))
)
(defun sqrt-iter (guess x)
(if (good-enough? guess x)
guess
(sqrt-iter (improve guess x) x)
)
)
(defun sqrt (x)
(sqrt-iter 1.0 x)
)
(sqrt 10)