home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / elk-2_0.lha / elk-2.0 / examples / scheme / sqrt < prev    next >
Encoding:
Text File  |  1989-02-17  |  431 b   |  20 lines

  1. ;;; -*-Scheme-*-
  2.  
  3. (define (sqrt x)
  4.     (define (good-enough? guess)
  5.     (< (abs (- (square guess) x)) 0.001))
  6.     (define (improve guess)
  7.     (average guess (/ x guess)))
  8.     (define (sqrt-iter guess)
  9.     (if (good-enough? guess)
  10.         guess
  11.         (sqrt-iter (improve guess))))
  12.     (sqrt-iter 1))
  13.  
  14. (define (square x) (* x x))
  15. (define (average x y) (/ (+ x y) 2))
  16. (define (abs x) (if (negative? x) (- x) x))
  17.  
  18. (print (sqrt 2))
  19. (print (sqrt 4))
  20.