From: matz@... (Yukihiro Matsumoto) Date: 1997-07-11T11:58:59+09:00 Subject: [ruby-list:3329] meta programming features まつもと ゆきひろです メタプログラミング系の機能について考えてみたいと思います. 基本的に複雑な機能を導入するつもりはないので,今どうがんばっ てもできない機能を追加することが基本になると思います. んで,列挙系の機能が全くないので Module#constants Object#methods のような機能は必要だと思います.実装はそれほど大変ではないの ですが,列挙される範囲はどこまでかを定義する必要があります. つまり,たとえば定数であれば,そのモジュール(クラス)で定義さ れた定数だけを列挙するのか,それともそのクラスの内部コンテキ ストで定数として参照できる全てのもの(全てのクラス名を含む)か ということです.あるいはメソッドであれば関数的メソッドも含め て全て列挙するかどうかです. 全部列挙してしまうとあまり必要のないものまで含むことになりそ うですし,かといってあまり狭めてしまうのも使いにくそうです. どの程度が適切でしょうね. 後, Module#constant_value(name) Module#constant_value(name)=value などもあると便利そうですが,いっそのこと Module#internal_binding のようなものを用意してevalに任せてしまうというのも手ですよね. まつもと ゆきひろ /:|)