DongHyun Chae
DongHyun Chae

Reputation: 1

Is there some error-case in this answer? for SICP 1.7

I'm a beginner with SICP.

For SICP 1.7, I assume this solution has some problem when '(improve guess x)' keeps returning different values compared to 'guess'.

But I can't find an error case for this solution.

Can you give me some advice or an error case?

Thank you.

#lang scheme
(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)
  (= guess (improve guess x)))

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

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

I tried the following cases, but they did not fall into an infinite loop:

(sqrt 0.0000133415811023) (sqrt 10230094109992910002)

Upvotes: 0

Views: 81

Answers (0)

Related Questions