2006-01-20から1日間の記事一覧

マクロでtarai回し 2回目

また今度と言ってから8時間しか経ってないけど、どうやらできたみたいなので公開。まず、普通の関数で引数の評価を遅らせることを考えてみる(r/oはregular order=正規順序の意味)。 (define (tarai-r/o x y z) (let ((x-value (force x)) (y-value (force y)…

マクロでtarai回し 3回目

zを評価するタイミングはもっと遅らせられることに気付いたので、元にする関数をちょっと修正した。 (define (tarai-r/o x y z) (let ((x-value (force x)) (y-value (force y))) (if (<= x-value y-value) y-value (tarai-r/o (delay (tarai-r/o (1- x-valu…