SQRT методом конечных приближений

Реализация "чёрного ящика":

(defun good-enough-p (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-p guess x)
      guess
      (sqrt-iter (improve guess x) x)))

(defun sqrt2 (x)
 (sqrt-iter 1.0 x))