From: thitoshi@... (TAKAHASHI Hitoshi) Date: 2000-02-18T17:09:54+09:00 Subject: [ruby-list:20827] Re: method object 京都大学の高橋です。 <20000218162737T.msuzuki@pthree.co.jp>の記事において msuzuki@pthree.co.jpさんは書きました。 >> もしかして、クロージャの様な物でしょうか。 >> Smalltalkで言う所の >> >> method := [ 1 + 1 ]. "BlockContextを作る" >> method value. "BlockContextにvalueメッセージを送る" これは Ruby で言うところの Proc オブジェクトですよね? ぼくが考えているのは、今、 class Hoge def foo(x) ... end alias bar foo private :foo end と書いているのを class Hoge def foo(x) ... end bar = foo # あるいは bar = foo.dup foo.private end みたいに書けないかなー、というものなんです。 僕が Ruby で時々混乱することの1つは、 def foo; "foo"; end alias bar foo def foo; "FOO"; end print bar #=> "foo" であることです。この混乱は alias =>「別名」=> 同じ実体を指している という連想からくるわけですが、 その点、メソッドオブジェクトで bar = foo bar = foo.dup と書けて、普通の変数と同じように両者に違いがあるならば、 alias のような混乱がなくなる気がします。 ------------------------------------------------------------------- TAKAHASHI Hitoshi Experimental Nuclear and Hadronic Physics Laboratory Department of Physics, Kyoto University E-mail: thitoshi@ne.scphys.kyoto-u.ac.jp URL: http://www-nh.scphys.kyoto-u.ac.jp/~thitoshi/member.html -------------------------------------------------------------------