From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?= ) Date: 1997-07-19T15:18:54+09:00 Subject: [ruby-list:3398] Re: meta programming features けいじゅ@今はフリー(^^;;;です. In [ruby-list :03391 ] the message: "[ruby-list:3391] Re: meta programming features ", on Jul/18 23:19(JST) matz@netlab.co.jp (Yukihiro Matsumoto) writes: >|まあね... >|#でも, バニラフレーバーなどと考えるとmixinの気が... > >だからmoduleしかmixinになれないrubyとは違ってFlavorsではクラ >スですから… そうなんですけどね. まあ, イメージの問題だからあまり気にしないで下さい (^^;;; でも, rubyにおいても, 継承しているクラスおよびインクルードしているモジュー ルのことを``フレーバー''と呼ぶような用語の決定につながることになります がそれで良いんですかね? >|あと, イテレータ案でありえるのは, 定数もevalするぐらいしか... 他にも考 >|えられますかねえ??? >あとは定数とメソッド定義のAPIを用意するくらいしか…. ですかあ.... >|でも, 今の中で出てきた: >| Module#instance_methods >|は? >特異メソッドでないという意味でinstance_methodですか. class methodと比較しての instance methodのつもりでした. >|というわけで, procの用に明示的に渡すAPIの方がまだいいかなぁ... といっ >|ても, ちゃんと動くAPIが出てこない... >| >| eval "a", Binding.merge{|a| bd}.call{"Foo"} >| >|やっていることは, バインディングbdにa = "Foo"をマージした新しいバイン >|ディングで eval "a" で評価しているつもりです... >| >|# ちゃんとうごくAPIは任せます(^^;;;; > >なにをやっているか分かんないんですけど… おかしいなあ... あるバインディングbdに対して, 変数aに値"Foo"が束縛されている状態を追加 した新しいバインディングを生成する機能です. 束縛をハッシュ表で表して以 下のように表現するとします: newbd = bd + {:a => "Foo"} こういう機能があれば, a = "Foo" eval "A = a", Foo.class_binding + {:a => a} の様な使い方ができるようになりますよね. __ .........................................石塚 圭樹@今はフリー(^^;;... ------->>また, アドレス変わりました!! e-mail: keiju@bc.mbn.or.jp <<---