From: shugo@... (MAEDA Shugo) Date: 1998-11-28T17:17:14+09:00 Subject: [ruby-dev:3694] Re: nested method? (Re: block local variable) 前田@大阪大学です。 >>>>> In [ruby-dev:3690] >>>>> "檜田" == Kazuhiro HIWADA san wrote: 檜田> ひわだです。 檜田> 僕はスタティックなスコープだけを考えてました。書き忘れました。一応僕の なるほど、どうも話が食い違っていると思いました。 檜田> #これをメソッドだと言い張るのには無理があるなぁ… __;; やっぱりこれだと関数ですよね...。 檜田> メソッド foo$bar が未定義かどうかを静的にチェックできるかどうかが問題っ 檜田> てとこでしょうか。静的に解決できそうな気はしますが。 >> >> 静的にというのがどういう意味かわからなかったのですが、コンパイル時に >> 呼び出されるメソッドを決定可能であるという意味ならば無理だと思います。 >> # というかそもそもRubyには静的束縛ってないですよね? 檜田> あ、いえ、メソッドのID ("foo$baa".id or "baa".id) をコンパイル時に決め 檜田> られるかどうか?という意味でした。 なるほど、 檜田> * ネストしたメソッドには "foo$bar", "foo$bar$hoge" というふうに、ス 檜田> コープを限定するために prefix ("foo$" "foo$bar$" など) をつけて管 檜田> 理する。 というのが書いてなかったので勘違いしていました(^^; # この仕組みってJavaのinner classに似てますね。 shugo> そういえば、このモデルだと、 (snip) shugo> でbazを呼び出したらどうなるんでしょう。 檜田> 僕の定義なら ==> "bar" ですね。後者なら ==> "foo$bar" かな…。局所では 檜田> なく一時か。(後者が ==> "bar" だとしたら両者に差異はなさそうだし) 檜田> 僕はもともと他への影響をなくすために、局所的なメソッド(っていうか関数 檜田> ^^;)が欲しかったので、前者を意図してました。 ユーザーの要求を考えると、求められているのは前者のモデルなんですよね。 やはり現在のRubyのモデルとは少し合わないような気もするんですが。 -- 前田 修吾 (mailto:shugo@aianet.ne.jp)