SICP Exercise 1.6
Scheme uses Applicative Order Evaluation. The procedure new-if is a procedure. When it’s called all the arguments are executed.
A later augument is recursion, calling the new-if again which causes an infinite loop.
(define (sqrt-iter guess x) (new-if (good-enough? guess x) guess (sqrt-iter (improve guess x) x)))