Reputation: 3
(define average (lambda (x y)(/ (+ x y) 2)))
(define improve (lambda (guess X)(average guess (/ X guess))))
(define close-enuf? (lambda(guess X) (<(abs (- (* guess guess) X))0.1)))
(define loop (lambda (guess X)(if close-enuf? guess X ) guess (loop (improve guess X) X)))
(loop 3 2)
When I try to run the program, it goes without giving any output. How do I fix it?
Upvotes: 0
Views: 80
Reputation: 2829
I recommend you write the code out with better indentation style, because it will make the mistake more visible.
(define average
(lambda (x y)(/ (+ x y) 2)))
(define improve
(lambda (guess X)(average guess (/ X guess))))
(define close-enuf?
(lambda(guess X)
(< (abs (- (* guess guess) X)) 0.5)))
(define loop
(lambda (guess X)
(if close-enuf? guess X) ;; see the error here? (if (close-enuf? guess X)
guess (loop (improve guess X) X))) ;need another bracket here
I got the answer 1 21145/50952.
Upvotes: 3