ベン ビットディドゥルは次のようなテストを考えました。彼の手元にあるインタープリターが、applicative-order な順序の評価を実装しているか、または普通の順序の評価を実装しているかを、調べるテストです。
彼は、次のような2つの手続きを定義しました。

(define (p) (p))

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

そして、彼は次の式を評価しました。

(test 0 (p))

applicative-order なインタープリターでは、どんな結果になるでしょうか?
normal-order な評価ではどうなるでしょう?
あなたの考えを説明してください。
(normal と applicative とで、スペシャルフォーム if の動きは同じものとします。
ifの条件式がはじめに評価されます。その後に、その結果が真か偽かによって、then部とelse部がそれぞれ実行されます。)