Chapter 1, Building Abstractions with Procedures

Section - The Elements of Programming

Exercise 1.6


1
2
3
4
5
(define (sqrt-iter guess x)
  (new-if (good-enough? guess x)
          guess
          (sqrt-iter (improve guess x)
                     x)))

If the interpreter evaluates the function call new-if in applicative order then this function is doomed for infinite recursive calls. On the other hand if it is normal order evaluation then it will work as expected.