CommonLisp Scheme Part13
■ このスレッドは過去ログ倉庫に格納されています
0178デフォルトの名無しさん
2005/06/01(水) 12:52:55んなものがあるでしょうか?xyzzy がバージョンアップしたみたいなので,試
してみたのだけど,やっぱりスタック数40,000 程度でオーバーフロー.
(defun tail-rec (x y)
(if (<= x 0)
y
(tail-rec (- x 1) (+ y 1))))
(tail-rec 40000 0) => オーバーフロー
Petite Chez Scheme だったら 100,000,000 でも軽々動くのに.こういうのは
再帰にせず,堂々と loop で書くのが Common Lisp 的なのだろうか.
(define (tail-rec x y)
(if (<= x 0)
y
(tail-rec (1- x) (1+ y)))
(tail-rec 100000000 0) => 100000000
■ このスレッドは過去ログ倉庫に格納されています