let t = 関数型プログラミング言語ML 2
■ このスレッドは過去ログ倉庫に格納されています
(define (fib p n)
(let ((cont (lambda (a)
(let ((cont2 (lambda (a2)
(+ a a2))))
(fib cont2 (- n 2))))))
(if (< n 2) n
(fib cont (- n 1))))
こうかな? 合ってるかな?
関数が継続を引数にとるようになって、全ての関数呼出はtail callになる。
■ このスレッドは過去ログ倉庫に格納されています