SICP問題1.5
(define (p) (p)) (define (test x y) (if (= x 0) 0 y)) (test 0 (p))
作用的順序の評価系の場合
作用的順序の評価を使用している解釈系の場合、引数の評価を行ってから、その結果でパラメータを置き換えていく。
(test 0 (p))を実行した場合は (p) の評価を行い結果で test のパラメータを置き換えることになる。
ここで p は (define (p) (p))となっており、(p)の結果を得るためには再度(p)を実行する必要が出てくるため、無限ループに陥ることになる。