問題1−6
ifを新たに定義したときの、動作はどうなるのか?という問題。
(define (new-if predicate then-clause else-clause)
(cond (predicate then-clause)
(else else-clause)))
デバッグしながら見てみると、predicateがtrueになっても、else-clauseを評価していた。
else-clauseに再帰表現が入っていると、それを何度も評価していて、値が決まらない。
すなわち、解釈系が作用的順序の評価をしているために、このような不都合が起こるのかなと思った。
ネットを調べてみたが、とくに情報がないので、これ以上はわからず。。。
さあ、寝よう〜