From: matz@... (Yukihiro Matsumoto) Date: 1997-07-16T08:44:08+09:00 Subject: [ruby-list:3357] Re: meta programming features まつもと ゆきひろです In message "[ruby-list:3353] Re: meta programming features" on 97/07/16, 石塚圭樹 writes: |けいじゅ@今はフリー(^^;;;です. |>Module#flavorsとかはどうでしょう? なんか違うものを連想しそ |>うですけど,メタ機能はあまり一般人は使わないと思うので,一般 |>人が使わない語彙の方が良いのかなと. | |flavorsねえ... それなら, ruby風にmixinsのほうが... でも, それだと余計 |誤解を生みますね.... あと, 思い浮かぶのは | | Module#modules | Module#inherits | |ぐらいですねえ... mixinだとモジュールだけだと思ってしまうでしょう? 今回はincludeされているモジュールと継承しているクラスの両方 を含むリストなんですから,mixinでは良くないように思います. |>とりあえず,以下のメソッドを用意しようかなと思っています. | |> クラス定義メソッド |> どこに作るか明示的に指定する(デフォルトは現在のコンテキ |> ストかな) | |現在のコンテキストというのはそんな気がしますね. これに関しては, イテレー |タ部分はどうします? できれば使いたくないです.前のメール参照. |> メソッド一覧メソッド |> モジュール(クラス)のものとオブジェクト毎のもの. |> 名前が問題だ | | Module#methods を採用しないのは, 何か理由がある? Object#methodsが欲しいから.つまり,特定オブジェクトのメソッ ドの一覧を返すメソッドの名前と,あるクラス(モジュール)で定義 しているメソッドの一覧を返すメソッドの名前が重ならないように したいからです.両方ともmethodsにしちゃうと,クラスメソッド の一覧がとれなくなっちゃう. |あとは, 機能追加に関するAPIが問題ですね. | |クラス生成時にイテレータが指定できるのなら, それを流用しても良いし, ク |ラス生成時にイテレータの指定ができないのなら, どちらにしても, 関数や定 |数定義のAPIが必要になりますよね. イテレータは採用したくないので,必要でしょうねえ. まつもと ゆきひろ /:|)