まつもと ゆきひろです

In message "Re: [ruby-dev:30802] Re: tail call optimization"
    on Tue, 22 May 2007 01:48:34 +0900, SASADA Koichi <ko1 / atdot.net> writes:

|> くらいでいかがでしょう? 仕様については問題ないんじゃないかと
|> 思います。Rubyの場合、aliasとかあるんで本当に再帰なのか判定
|> するのにコストがかかりますから、jumpへの最適化は結構難しいん
|> でないかと思いますし。
|
| これは末尾再帰の最適化の話ですか.Rubyの文法を守る限り,ジャンプへの変
|換は絶対に無理なんじゃないかと思います.Javaでいう,privateメソッドを作
|るのならなんとでもなりそうですが.

絶対に、というのは「現実的なコストでは」絶対にという意味です
よね。同意します。メソッドルックアップを行って、自分自身を呼
んでいることを確認できればjumpに最適化できると思いますが、コ
スト的に折り合わないでしょうね。

|> ちょっと考えたのは、 recall というキーワードを用意して、
|> recall(args)で自分自身を呼び出し(jumpに最適化できる)というの
|> はどうでしょうねえ。
|
| そこまでするならループでいいような気はします.気のせいかしらん.

いや、再帰呼出しっぽく見えるのが重要なのでしょう、たぶん。
recallは最近読んだ何かの言語についてた機能です。えーと、Rだっ
たかな。

                                まつもと ゆきひろ /:|)