From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?= ) Date: 1997-12-15T12:01:40+09:00 Subject: [ruby-dev:1087] Re: Object#bind けいじゅ@日本ラショナルソフトウェアです. In [ruby-dev :01084 ] the message: "[ruby-dev:1084] Re: Object#bind ", on Dec/15 11:10(JST) matz@netlab.co.jp (Yukihiro Matsumoto) writes: >まつもと ゆきひろです > >|API案: 根本的に意識のずれがあるですかね? 私は次のように考えていました. * BoundMethod -- クラスまたはオブジェクトに属するメソッド本体(とレシー バの組) * UnboundMethod -- クラスやオブジェクトから独立なメソッド本体 >|* Module#bound_instance_method(method_name) >| (インスタンス)メソッドmethod_nameを持つBoundMethodを取り出す. >この場合boundするべきレシーバが指定されてないです. Mod.bound_instance_method(:foo) とすると, Mod#fooがModに束縛されたまま取り出される. ってイメージです. >|* Object#unbound_method(method_name) >| レシーバのメソッドmethod_nameを持つUnboundMethodを取り出す. > >Objectからunbound_methodとりだすのはあんまり好きでないです. >同じことは object.type.unbound_method でできるし. 特異メソッドのことを考えたのですが? >|* Object#bind_method(method_name, (un)bound_method) >| UnboundMethod/BoundMethodをレシーバのmethod_nameを持つメソッドにバイ >| ンドする. > >Object#unbound_methodと同様 これも特異メソッドのことを考えているのですが... 特異メソッドは扱えなく ても良いと思っている? >|* BoundMethod#unbound >| UnboundMethodを取り出す. >必要かなあ.あっても良いかも知れないけど. >|* UnboundMethod#bind_instance(mod) >| modのインスタンスメソッドとしてBoundMethodを取り出す. > >なにをするのか良く分かりませんでした. modにバインドされたBoundMethodを生成するメソッドです. BoundMethod#unboundの逆演算です. >|* UnboundMethod#bind(obj) >| objのメソッドとしてBoundMethodを取り出す. > >これ採用したくないですねえ.無名メソッドという恐ろしいものを >導入したことになるし. ん? ん? BoundMethod/UnboundMethodって無名メソッドだと思っていたのです が?? __ ................................石塚 圭樹@日本ラショナルソフトェア... ----------------------------------->> e-mail: keiju@rational.com <<---