[#34] [Bug] Class#superclass — shugo@... (maeda shugo)
前田です。
[#49] Re: Nil is a subclass of Object? — shugo@... (maeda shugo)
前田です。
[#50] Re: [ruby-list:3596] Module#attr specification (Re: boolean values) — keiju@... (石塚圭樹 )
けいじゅ@日本ラショナルです.
前田です。
まつもと ゆきひろです
わたなべです.
[#53] About C struct who has references to ruby objects — shugo@... (maeda shugo)
前田です。
[#58] Re: Nil is a subclass of Object? — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#78] [Bug] Socket#send, Socket#recvfrom — shugo@... (maeda shugo)
前田です。
[#97] Re: meta programming features — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#115] Re: meta programming features — WATANABE Hirofumi <watanabe@...>
わたなべです.
[#117] Re: tail recursion (Re: LaTeX ruby documents) — keiju@... (石塚圭樹 )
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
[#121] Re: meta programming features — keiju@... (石塚圭樹 )
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
[#127] tracer — keiju@... (Keiju ISHITSUKA)
けいじゅ@いそうろう.日本ラショナルです.
まつもと ゆきひろです
けいじゅ@いそうろう.日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
わたなべです.
まつもと ゆきひろです
わたなべです.
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
[#167] argument default value — shugo@... (前田 修吾 / maeda shugo)
前田です。
[#185] Re: [ruby-list:3720] Re: Class#eval [Re: ftplib.rb revision 1.4] — keiju@... (石塚圭樹 )
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
まつもと ゆきひろです
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
けいじゅ@やっと自オフィス.日本ラショナルです.
まつもと ゆきひろです
まつもと ゆきひろです
[#189] include [Re: new sync.rb release] — keiju@... (石塚圭樹 )
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
[#221] '@' in yylex() — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
[#228] How to handle Struct — Eiji-usagi-MATSUmoto <ematsu@...>
うさぎです。
[#232] ruby for mswin32 1.1a1差分 — KIMURA Koichi <kkimura@...>
木村 です。
[#257] [BUG] MLF — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
けいじゅ@日本ラショナルです.
[#276] Re: SyslogSendmail class — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#291] illegal here document — shugo@... (前田 修吾 / maeda shugo)
前田です。
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
わたなべです.
[#309] [BUG] method index — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
[#313] ruby 1.1a4 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#330] [BUG] Module#methods — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
[ruby-dev:122] Re: meta programming features
まつもと ゆきひろです
In message "[ruby-dev:121] Re: meta programming features"
on 97/08/13, 石塚圭樹 <keiju@bc.mbn.or.jp> writes:
|けいじゅ@日本ラショナルです.
|foo = Foo.new
|foo.eval "X = 1"
|
|は何を行うことになるのでしょう?
|
|1. 常に, Foo#Xを定義する.
|2. 常に, fooの特異クラスのXを定義する.
|3. Foo#Xがなければ Foo#Xの定義, 存在すればfooの特異クラスのXを定義する.
|4. 今のところ未定義
|5. その他
4です.どうするのが良いと思いますか?
現行eval(private)では1ですね.
現行evalの基本は「そこにコードがそのままあった場合と同じ動き
をする」ことです.しかし,そもそもメソッド定義と定数定義には
存在できない場所がありますから,そういう場所でもevalの挙動は
任意に決められるわけです.
で,現状ではそのメソッドを定義している(定義を囲んでいる)クラ
スをメソッド,定数の定義先としているわけです.
で,考えられる変更点は
* evalをpublicにする
この場合,「コードがそこに」というのは成立しなくなります
が,これは「コードがそのクラスのメソッドに」ということで
まあ,受け入れられると思います.
* evalでのメソッドとクラスの定義先をクラスから特異クラスに
変更する.
互換性は無いですが,受け入れられないことは無い変更です.
ただし,関数形式でevalが呼ばれた時には現在の動作の方が自
然に見える気はします.
逆にメソッド形式で呼ばれた時には特異クラスに定義した方が
自然なんですよねえ.とはいえ,メソッドが関数形式で呼ばれ
たかどうか知る方法は無いですし.
なんですよねえ.
|トップレベルにおいて, evalで関数定義を行うと:
|
| eval "def foo; ...; end"
|
|メインオブジェクトの特異メソッド定義になっちゃうわけですよね?
それはいくらなんでも使いにくいんで,Object#evalの挙動を変更
するなら,main.evalを再定義して,トップレベルではObjectクラ
スに対してメソッドや定数を定義するようにするでしょう,多分.
|で, どうしたらいいかというと:
|
|1. このまま.
|2. メソッド定義は定数定義と合わせる.
|3. 特異メソッドfooが定義されていれば, 特異メソッドの定義. 定義されてい
| なければFoo#fooの定義. 特異メソッドを明示的に定義したい時には, def
| obj.foo を用いる.
|4.
|
|などなどがあると思います.
なんか3は動きが複雑だなあ.定数メソッドともクラスにするか特
異クラスにするかどちらかで統一した方が良さそうに思います.
|Object#typeは, 特異クラスを返した方がいいのか, あくまでもクラスを返し
|た方がいいのか...
なんとなく特異クラスを返そうという気になっています.
まつもと ゆきひろ /:|)