From: Yukihiro Matsumoto Date: 2007-05-22T10:30:30+09:00 Subject: [ruby-dev:30803] Re: tail call optimization まつもと ゆきひろです In message "Re: [ruby-dev:30802] Re: tail call optimization" on Tue, 22 May 2007 01:48:34 +0900, SASADA Koichi writes: |> くらいでいかがでしょう? 仕様については問題ないんじゃないかと |> 思います。Rubyの場合、aliasとかあるんで本当に再帰なのか判定 |> するのにコストがかかりますから、jumpへの最適化は結構難しいん |> でないかと思いますし。 | | これは末尾再帰の最適化の話ですか.Rubyの文法を守る限り,ジャンプへの変 |換は絶対に無理なんじゃないかと思います.Javaでいう,privateメソッドを作 |るのならなんとでもなりそうですが. 絶対に、というのは「現実的なコストでは」絶対にという意味です よね。同意します。メソッドルックアップを行って、自分自身を呼 んでいることを確認できればjumpに最適化できると思いますが、コ スト的に折り合わないでしょうね。 |> ちょっと考えたのは、 recall というキーワードを用意して、 |> recall(args)で自分自身を呼び出し(jumpに最適化できる)というの |> はどうでしょうねえ。 | | そこまでするならループでいいような気はします.気のせいかしらん. いや、再帰呼出しっぽく見えるのが重要なのでしょう、たぶん。 recallは最近読んだ何かの言語についてた機能です。えーと、Rだっ たかな。 まつもと ゆきひろ /:|)