Exercise 4.25. Suppose that (in ordinary applicative-order Scheme) we define unless as shown above and then define factorial in terms of unless as (define (factorial n) (unless (= n 1) (* n (factorial (- n 1))) 1)) What happens if we attempt to evaluate (factorial 5)? Will our definitions work in a normal-order language? ———————————————————————————————————————————————————————————————————————— (factorial 5) will attempt to evaluate the arguments to unless before calling it, which will evaluate (factorial 4) and so on down to (factorial 1), and unfortunately on through 0, -1, -2, etc. In a normal-order language, this will work, since when (factorial 1) is reached, the unless call will not use the first argument and so it will not be evaluated.