[#3] Re: [ruby-list:3517] Re: meta programming features — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

28 messages 1997/07/28
[#6] Re: [ruby-list:3517] Re: meta programming features — keiju@... (Keiju ISHITSUKA) 1997/07/28

けいじゅ@今はフリー(^^;;;です.

[#11] Re: [ruby-list:3517] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/07/29

まつもと ゆきひろです

[#14] Re: [ruby-list:3517] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/07/29

けいじゅ@今はフリー(^^;;;です.

[#17] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/07/30

まつもと ゆきひろです

[#19] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/07/31

けいじゅ@今はフリー(^^;;;です.

[#23] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/07/31

まつもと ゆきひろです

[#27] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/07/31

けいじゅ@今日でフリーは終り(;_;です.

[#28] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/08/01

まつもと ゆきひろです

[#31] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/08/01

けいじゅ@今日から日本ラショナルです.

[#33] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/08/01

まつもと ゆきひろです

[#35] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/08/02

けいじゅ@日本ラショナルです.

[#38] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/08/03

まつもと ゆきひろです

[ruby-dev:18] Re: [Problem] for local class

From: matz@... (Yukihiro Matsumoto)
Date: 1997-07-30 23:30:11 UTC
List: ruby-dev #18
まつもと ゆきひろです

In message "[ruby-dev:15] Re: [Problem] for local class"
    on 97/07/29, 石塚圭樹 <keiju@bc.mbn.or.jp> writes:

|けいじゅ@今はフリー(^^;;;です. 

|良くできていると思った覚えがあります.
|
|>次に,クラスの再定義の挙動を定義する必要があります.これも石
|>塚さんのおっしゃるように定数の挙動に合わせても良いような気が
|>して来ています.
|
|一応定数ですしね.


|>それは別に
|>
|>  * なんらかの方法で定数の値が動的に変更された時(eval/定数定
|>    義API/includeなど),どのように挙動すべきか

|定数の値の決定(構文木への埋め込み)はdefの時に行われているんではなくて, 
|最初に実行した時に行われているんですね?

そうです.

|定数の値の決定法としては:
|
|1. def時に静的に決定してしまう
|2. 最初の実行時に決定する.
|3. 関数を呼び出す度に値を決定する.
|
|の3種類があると思いますが, どれがいいんでしょうかね?? (3)だとオブジェ
|クトが毎回変わる可能性があって, 定数というイメージからずれているし...
|(1)はある意味ではっきりしているからいいんだけど, 使いづらくなるし...
|(2)は, 上記の例のように変なことが出てくるし...
|
|# この問題って意外と面倒だったんですね...

def時には定数の値が決まっていませんから1は不可能です.現在の
実装は2なんですが,3にしないといけないようです.本当の意味で
定数にするためには再定義を禁止する必要が出て来ますが,それは
制限が厳しすぎると思いますし.

|>|>Object::Fooじゃだめ?
|>|# ただ, (同名ローカルクラスが許されたとして)ローカルクラスでObjectがあ
|>|# ると困るかな... Objectだけは,  再定義しちゃ駄目といえば済むかな...
|
|>それは自業自得ということで.
|
|(^^;;;

問題は現在の実装では組み込みクラスを絶対パスで参照する方法が
ないんですよねえ.Object::Fileはエラーになります.クラスの再
定義の問題にも関係するんでこの辺をちゃんと定義しないと.

                                まつもと ゆきひろ /:|)


In This Thread