From: matz@... (Yukihiro Matsumoto) Date: 1997-07-16T08:44:05+09:00 Subject: [ruby-list:3356] Re: module context and dynamic class define [Re: meta programings] まつもと ゆきひろです In message "[ruby-list:3354] Re: module context and dynamic class define [Re: meta programings]" on 97/07/16, 石塚圭樹 writes: |けいじゅ@今はフリー(^^;;;です. |間違いをなくすという意味もあるんでしょうね. つまり, 偶然別のクラスを同 |じ名前で定義するとか... | |そういったことで考えると, 機能拡張用の別APIをMPF(meta programing |features)として用意して頂いた方がよいかなって気がしてきました. ですね.module構文の拡張は止めましょう. |> * イテレータのバインディングは変えられない |> * メソッド内でメソッドが定義できない |> * 定数のスコープがごっちゃになる |> * デフォルトのprivate/publicのスコープにあわない |> |>など,問題が多発したので,あんまり採用したくないんです. | |なるほど... といいたいのですが, 以上の点で何が問題になるのか理解できて |いないんですが... 上から順番に * 最初のはあんまり問題ではない * こういうコードが書けない def foo Class.new("Bar", Object) { def bar ... end } end * 良く考えたらこれも問題ではない * こういうコードで定義されるメソッドがprivateになる Class.new { def bar ... end } となります. |あと, これは動的クラス生成でもイテレータは使えないことを意味しているん |ですよね? そうです.メソッド定義のネストチェックは外せないことはないと 思うんですけど,デフォルトのprivateの指定はあんまり変えたく ないです. まつもと ゆきひろ /:|)