From: matz@... (Yukihiro Matsumoto) Date: 1997-09-26T10:41:10+09:00 Subject: [ruby-dev:531] Re: Assigne to special variable まつもと ゆきひろです In message "[ruby-dev:522] Re: Assigne to special variable" on 97/09/25, "EGUCHI Osamu" writes: |えぐち です。 |全てのモジュールで 定数TRUE を定義しない限りだめでしょうか? |モジュール定義に hook はないですか、、これは邪道の境地になってしまう いまんとこないです. |> 定数システムは特異ではありますが,いろいろ考えて作られている |> んで変更しようと思ったらなかなか深い議論を呼びますよ. |> # 脅しているわけじゃないんですけど. | |どうしてこういう形に落ち着いてか興味が尽きません。 なぜ定数になったか,という話は以前にもしましたが,結局はクラ ス変数がどこのクラス(あるいはモジュール)に属するかを決定する ことができないからです. では,どうして書き換え可能になったか,というと include が動 的に行う事ができるからです.つまり,自分のところで定義してい る定数と同じ名前の定数を定義しているモジュールをインクルード する事は結局定数の上書きになってしまいます.ということは,他 のところで禁止するのも意味が無いなあ,ということで,サブクラ スによる上書きを許す事になっています. |STDIN を「しょうがない」と断言されるところを見ると |include する Module によって定数シンボルが意味を変えるのを |重要な機能と位置づけているんですね。 というか,現実的な仕様で禁止することができそうにないなあ,と 思っています. |どうも実行時に言語仕様の一部が書き換わってるような感じで |最適化って余地が殆どないような気がします。 最適化については別のメールにしましょう. まつもと ゆきひろ /:|)