前田です。 In message "[ruby-list:4609] Re: Object#freeze" "EGUCHI Osamu" <eguchi / shizuokanet.or.jp> wrote: |> `template method'で意図したのはインターフェイスだけ提供して |> 実装は何もないメソッドということです。 | |virtual member function ? virtualってC++のvirtualでしょうか? 言いたかったのは class Object def freeze end end ということでした。 |> クラスライブラリの変更だけで済むような方法の方がよいのでは |> ないでしょうか。 | |インタープリタ側で実装しようというのは |「$-I をいかなる方法でも書き換え不能にする」 |という話題が元になっていたため私の頭の中では |ライブラリがロードされる前に既に read-only で |frozen な状態に出来ないかという部分が大きかったのです。 |そうでなければ特異メソッドなどを駆使して実現できると思います。 クラスライブラリと書いたのはビルトインクラスも含めてです。 現在のrubyでインスタンス変数を変更するメソッドが検出できると 思ってなかったので...。 $:などの問題についてはimmutableなArrayを用意するだけで 十分なのではないでしょうか。 -- 前田 修吾