2013年3月29日 星期五

NCNU LISP HW2

exercise 2: improve the good-enough?


(define (square  x) (* x x))

(define (sqrt-iter guess x)
  (if (good-enough? guess x)
      guess
      (sqrt-iter (improve guess x)
                 x)))

(define (improve guess x)
  (average guess (/ x guess)))

(define (average x y)
  (/ (+ x y) 2))


(define (good-enough? guess x)
 (< (abs (- guess (improve guess x)))
    (* 0.0001 (improve guess x))))

(define (sqrt x)
  (sqrt-iter 1.0 x))

(define (abs x)
  (if (< x 0)
      (- x)
      x))

沒有留言:

張貼留言