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.