ささだです.

Yukihiro Matsumoto wrote:
> (4) 入れるし使うけど別に触れ回ることまではしない
> 
> くらいでいかがでしょう? 仕様については問題ないんじゃないかと
> 思います。Rubyの場合、aliasとかあるんで本当に再帰なのか判定
> するのにコストがかかりますから、jumpへの最適化は結構難しいん
> でないかと思いますし。

 これは末尾再帰の最適化の話ですか.Rubyの文法を守る限り,ジャンプへの変
換は絶対に無理なんじゃないかと思います.Javaでいう,privateメソッドを作
るのならなんとでもなりそうですが.

> ちょっと考えたのは、 recall というキーワードを用意して、
> recall(args)で自分自身を呼び出し(jumpに最適化できる)というの
> はどうでしょうねえ。

 そこまでするならループでいいような気はします.気のせいかしらん.

 メソッド内での retry(args) とか,ふと思いつきました.

def cnt n
  retry n-1 if n>0
end

 って,ブロック中では使えないからダメか.

-- 
// SASADA Koichi at atdot dot net