Exercise 1.5

(define (p) (p))
(define (test x y)
(if (= x 0) 0 y))

(test 0 (p)) =>...

With applicative-order evaluation, the expression will never return a value because the interpreter tries to evaluate (p) and enters endless recursion.

With normal-order evaluation, the expression will evaluate to zero. The (p) expression is never evaluated because it is not necessary to do so.