From: matz@... (Yukihiro Matsumoto) Date: 1997-07-15T03:12:34+09:00 Subject: [ruby-list:3346] Re: meta programming features まつもと ゆきひろです In message "[ruby-list:3345] Re: meta programming features" on 97/07/14, 石塚圭樹 writes: |けいじゅ@今はフリー(^^;;;です. |スーパークラスはすでにあるでしょ? 実はバグってました.^^;;; |>インクルードされている順番が問題になる場合もあるので(定数の再定義や |>undefなど),元になっているクラスやモジュールの優先順位のある一覧も必 |>要になりそうですけど,その場合は名前が…. | |名前って何? そういう機能を提供するメソッド名です.いつも機能に名前をつけ るのが一番の問題で. あるクラスの機能はそのスーパークラスとインクルードされている モジュールで決まるんですが,rubyにはundefがあったりするんで, あるクラスにinherit/includeされているクラスやモジュールの優 先順位つきリストが必要になる場合があるんですね. |でも, どちらにしてもこれらの優先順位を理解するのは一般のユーザには難し |そうですね. やっぱ, 再帰的に遡って表示するメソッドも用意した方が良いか |な?? そうかもしれませんねえ.デフォルトではそのクラスの範囲内で, フラグを指定すると遡ってリストする感じでしょうか. |まず, 今は定数が定義できるところって限られていますよね. 例えば, | |Foo::Bar = "Const" | |はできないですよね. | |だから, | |module var | ... |end | |の場合, 変数varはすでに存在しているクラスでなくてはならないとすれば良 |くないですか? 「だから」がよくわかんなかったんですが, 定数の場合は今まで通り * 既に定義されている場合にはその機能の拡張 * 定義されていない場合には新規定義 それ以外の式の場合には値が既に存在するモジュールでなくては ならない(例外を発生する) とかいう動作にしたいんですか? それとも「それ以外の式」は(ロー カル)変数しか許さない? まつもと ゆきひろ /:|)