だんだん問題点が見えてきた
要するに、ambが引数を遅延評価しないと条件の切り替えはうまく動かない、と。そしてSICPのamb実装は遅延評価になっている、と。
実験してみる
(define (endless) (endless)) (amb 1 (endless) 2) -> 1 try-again -> ふっとぶ
おk。予想通り
要するに、ambが引数を遅延評価しないと条件の切り替えはうまく動かない、と。そしてSICPのamb実装は遅延評価になっている、と。
実験してみる
(define (endless) (endless)) (amb 1 (endless) 2) -> 1 try-again -> ふっとぶ
おk。予想通り