2008年7月30日星期三

First lisp code I wrote

I wrote this lisp program to implement Newton's method about calculate square root
To calculate a number's square root.Newton method two argus
1.the number self 'x'
2.a guess value 'g'

All code are under here:

(define zero_error "zero is not recommend to guess")
(define (ab x)
  (if (< x 0)
      (- x)
      x))
(define (good-enough? g x)
  (if (< (ab (- g (/ x g))) 0.00001)
  true
  false
  )
  )
(define (improve g x) (/ (+ g (/ x g)) 2) )
(define (sqrt-iter g x)
  (if (= g 0)
      zero_error
      (if (good-enough? (ab g) x)
          g
          (sqrt-iter (improve (ab g) x) x)
          )
      )
  )
(sqrt-iter -1 2)
(sqrt-iter 1 3)
(sqrt-iter 0 5)

没有评论: