From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?= ) Date: 1997-08-15T21:46:03+09:00 Subject: [ruby-dev:137] Re: meta programming features けいじゅ@日本ラショナルです. In [ruby-dev :00135 ] the message: "[ruby-dev:135] Re: meta programming features ", on Aug/15 19:34(JST) matz@netlab.co.jp (Yukihiro Matsumoto) writes: >さて,その後いろいろ考えた結果,Object#typeで特異クラスが見 >えるのは良くないという結論が出ました.理由は以下の通りです. > > * 特異メソッドが定義されているオブジェクトに対しては特異メ > ソッドを返し,そうでないオブジェクトに対しては通常のクラ ^^^^^^^^ 特異クラスですね? > スを返すのは使いにくい そうですよね. 私もそう思ったんですよ. > * そもそもfoo.evalとfoo.type.evalの対比が出て来た経緯も > typeで特異クラスが見えることによる この問題は, class << foo ... end がある限り解決しないと思いますが... まあ, それはともかく, 特異クラスをあまり見せない方向でいくという方針は 私も賛成です. そういったわけで, Object#eval() も通常クラスへの登録が基本で良いと思う んですが... あとは, 特異メソッドfoo.f()がすでに定義されている時, foo.eval("def f...")の動作が気になるぐらいですね. 特異メソッドが存在するか調べる方法があれば, foo.eval("def foo.f...") を使えるのですが... __ ..........................................石塚 圭樹@日本ラショナル... ----------------------------------->> e-mail: keiju@bc.mbn.or.jp <<---