Given the following task:
Use Newton's method to compute the square root of a number. Newton's method involves successive approximation. You start with a guess, and then continue averaging successive guesses until you reach a satisfactory level of precision.
I wrote the following (rough) solution in Scheme. Can you help me make it better?
(define (abs x) ((if (< x 0) - +) x)) (define (almost-equal x y delta) (> delta (abs (- x y)))) (define (sqrt-prime x last-x) (let ((next-x (/ (+ x last-x) 2))) (if (almost-equal next-x x 0.000001) x (sqrt-prime next-x x)))) (define (sqrt x) (sqrt-prime x 1))