Hatena::Groupcsnagoya-sicp

mzpの日記

2008-10-27

末尾再帰だけど、反復的プロセスじゃないやつ

はてなブックマーク - 末尾再帰だけど、反復的プロセスじゃないやつ - mzpの日記

いわゆるCPS

(define (fact k n)
  (if (= n 1)
      (k 1)
      (fact (lambda (m) (k (* n m))) (- n 1))))

こうすると末尾再帰だけど、呼ぶたびにkがどんどん膨らんでいくので、反復的じゃなくなる。

トラックバック - http://csnagoya-sicp.g.hatena.ne.jp/mzp/20081027