From: Kazuhiro HIWADA Date: 1998-11-27T03:20:50+09:00 Subject: [ruby-dev:3687] Re: nested method? (Re: block local variable) ひわだです。 >>> "shugo" == MAEDA Shugo writes: shugo> 前田です。 shugo> クラス単位にすればfooの定義時にbarを定義するようにできますよね? クラス単位に話をしぼります。 def foo def bar ... end bar # (1) end def bar ... end foo bar # (2) (1) は『self.send("foo$bar".id), foo$barが未定義なら self.send("bar".id)』 (2) は『self.send("bar".id)』の意味 ってのを大体意図してるんでしょうか?。とすると、 shugo> メソッド探索のコストが気になるのですが、どうなのでしょう? メソッド foo$bar が未定義かどうかを静的にチェックできるかどうかが問題っ てとこでしょうか。静的に解決できそうな気はしますが。 問題は、特異メソッドかな def self.foo bar # (2) (1じゃない!) end 動的に探索すると余計に大変そうだ。なんか、静的に解決してしまっておけば 問題ない気がしますね。 最初は『これって関数だよなあ、おれが作者なら却下だな ^^;』とか思ってた んですが、なんかわりといい線いってる気がしてきました。どうでしょう、だ めかな ^^;。スコープはできるだけ制限可能なほうがいいと思うんですけどね。 文法には無理ないと思うし。 -- 檜田 和浩 ( hiwada@kuee.kyoto-u.ac.jp )