問題1−6

ifを新たに定義したときの、動作はどうなるのか?という問題。

(define (new-if predicate then-clause else-clause)
(cond (predicate then-clause)
(else else-clause)))

デバッグしながら見てみると、predicateがtrueになっても、else-clauseを評価していた。
else-clauseに再帰表現が入っていると、それを何度も評価していて、値が決まらない。

すなわち、解釈系が作用的順序の評価をしているために、このような不都合が起こるのかなと思った。

ネットを調べてみたが、とくに情報がないので、これ以上はわからず。。。
さあ、寝よう〜