From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?= ) Date: 1997-07-17T02:56:12+09:00 Subject: [ruby-list:3366] Re: meta programming features けいじゅ@今はフリー(^^;;;です. In [ruby-list :03365 ] the message: "[ruby-list:3365] Re: meta programming features ", on Jul/17 01:36(JST) matz@netlab.co.jp (Yukihiro Matsumoto) writes: >|>mixinだとモジュールだけだと思ってしまうでしょう? >|そうなんですよ. でも, flavorsでも同じものを想像したりして(^^;;; >Flavorsのflavorはクラスでしたから…. まあね... #でも, バニラフレーバーなどと考えるとmixinの気が... >|さっきの案はどうです? >定数の問題がありますから,もうちょっと考えないと. もうちょっと考えれば解決しますかね? あと, イテレータ案でありえるのは, 定数もevalするぐらいしか... 他にも考 えられますかねえ??? >|そっかそっか. 忘れていた(^^;;; >| >| Module#features >| Module#protocol(s) > >ちょっと違うかな,という気もしますが,受け入れられないことは >ないですね. ちょっと, Smalltalk用語ですね... そういう意味では, ここでこのメソッドの名前を採用すると rubyにおけるク ラスで定義された(インスタンス)メソッドの名称が決まることになるんですよ ね. # ちょっと慎重になったりして... でも, 今の中で出てきた: Module#instance_methods は? >|話しはだいぶ変わるんですが, evalのbinding指定は結構使いづらいものがあ >|るんですよねえ... あるbindingに別なbindingをマージした新しいbindingを >|作るような機能は考えられませんか? > >例を見ても動作がよく分かりませんでした.ローカル変数スコープ >だけを外部のものを引き継ぐということかな. うーん. おくが深い. 私の方があまり深く考えていませんでした(^^;;; 私が 考えていたのは, 引数で渡したイレテータブロックで有効な変数を全てマージ するという意味でした. そうすると, かなり多くの変数を引き継ぐことになっ てしまいますものね... というわけで, procの用に明示的に渡すAPIの方がまだいいかなぁ... といっ ても, ちゃんと動くAPIが出てこない... eval "a", Binding.merge{|a| bd}.call{"Foo"} やっていることは, バインディングbdにa = "Foo"をマージした新しいバイン ディングで eval "a" で評価しているつもりです... # ちゃんとうごくAPIは任せます(^^;;;; __ .........................................石塚 圭樹@今はフリー(^^;;... ------->>また, アドレス変わりました!! e-mail: keiju@bc.mbn.or.jp <<---