[#3249] ruby for mswin32 — KIMURA Koichi <kkimura@...>
[#3257] mini-reference (syntax) — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#3305] Observable#notify_observers — shugo@... (maeda shugo)
前田です。
[#3312] multi-line comment — shugo@... (maeda shugo)
前田です。
[#3329] meta programming features — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろ%最終出社日です
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
[#3350] [Q] eql? and == — keiju@... (Keiju ISHITSUKA)
けいじゅ@今はフリー(^^;;です.
[#3375] Exception — keiju@... (Keiju ISHITSUKA)
けいじゅ@今はフリー(^^;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
[#3378] ML分割 — takagi@... (TAKAGI Hiromitsu)
ところで、話は変わって、ひとつ提案です。
[#3403] sorry for ruby-list trouble — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
[#3411] no cbreak in curses module — Shoichi OZAWA <ozawa@...>
こんにちは 小澤@日立 です。
[#3417] [Bug] String#sub — shugo@... (maeda shugo)
前田です。
[#3429] [Req] println — shugo@... (maeda shugo)
前田です。
まつもと ゆきひろです
[#3434] [Q] Thread — keiju@... (Keiju ISHITSUKA)
けいじゅ@今はフリー(^^;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
前田です。
前田です。
前田です。
けいじゅ@今はフリー(^^;;;です.
<199707301029.TAA25172@hoyogw.netlab.co.jp> の、
けいじゅ@今はフリー(^^;;;です.
<199707311103.UAA08460@hoyogw.netlab.co.jp> の、
[#3470] [Problem] for local class — keiju@... (Keiju ISHITSUKA)
けいじゅ@今はフリー(^^;;です.
[#3502] Re: .to_f result — 渡辺博文 <VYV01212@...>
わたなべです.
[ruby-list:3320] Re: meta programings [Re:exceptions (Re: Ver 1.1 [Re: Matrix])]
まつもと ゆきひろです
In message "[ruby-list:3319] Re: meta programings [Re:exceptions (Re: Ver 1.1 [Re: Matrix])]"
on 97/07/10, 石塚圭樹 <keiju@bc.mbn.or.jp> writes:
|けいじゅ@今はフリー(^^;;;です.
|なかなか使いやすそうですね. ただ, 先の context-class が指定できないの
|がローカルクラスを作る時面倒です.
っていうか,Class.new/Module.newは定数を定義しないので
context-classというのは存在しません.戻り値として与えられる
クラス(あるいはモジュール)を定数なり変数なりに代入してくださ
いませ.定義部はイテレータブロックを使っているのでバインディ
ングは変更できません.
| module A
| ...
| end
|
|の Aは, モジュールが代入された変数でもいいんですよね? つまり,
|
| a = Foo::Bar::Baz # あるモジュール
| module a
| ...
| end
|
|も OK? それなら問題ないかなあ...
だめです.Aはかならず定数でなければなりません.Foo::Bar::Baz
に機能を追加したければ
module Foo
module Bar
moduel Baz
end
end
end
とするしかないですね.
|>あと,トップレベルでは自動的にprivateになる仕様もこういう時
|>には面倒でした.
|
|なにがでしたっけ??
トップレベル(class/moduleの外)でdefするとprivate methodにな
ります.これはトップレベルでの定義されるのは関数(的メソッド)
であろう,ということからです.普段は確かにそうなんですけど,
こういう時は不便ですよね.
|定数はともかく, メソッド定義は関数的でないと使いづらい場合も多いと思い
|ます. とくに, 動的にコードを生成する時には.
動的にコードを生成する? lispじゃないんだから.
|ここまで話しが進んだので, 他のAPIのリクエストも出しましょう.
|
| Module#def_method(name, source)
| メソッドを定義する.
sourceって文字列なんですか? どういう感じなんだろう?
| Module#class_variables
| クラス変数の一覧
クラス定数ですよね.Module#constantsかしら?
| Module#class_variable_value(name)
| クラス変数の値
Module@constant_value(name)かな?
| Module#class_variable_value(name, value)
| クラス変数の値を設定する
Module@constant_value(name)=valueでは?
| (Module#instance_variables
| インスタンス変数の一覧. 必要か?)
オブジェクト毎に違うわけですから,Moduleとしては得られないで
しょう.
| Module#includes
| インクルードモジュールの一覧を返す.
これ,現在の実装では情報を持っていません.実装するのはちょっ
と面倒ですねえ.
| Object#methods
| メソッドと(private/public)の組みの一覧を返す.
これだとModule/Classそのもののmethodを取れませんね.重複しちゃ
うから.
| Object#extends
| エクステンドモジュールの一覧を返す.
これも情報が取ってないです.どうしよう.
|# あと, undef系があるかな...
まあ,よいですけど….なんか,ここで既に大げさで(完全性は満
たしているかも知れませんが),rubyらしくない気がしてます.
|あと, 松本氏はいやがるかも知れませんが,
|
| Module#methods_sources
| メソッドと(private/public)とソースコードの組みの一覧を返す.
| Object#methods_source
| メソッドと(private/public)とソースコードの組みの一覧を返す.
|
|があるかな.
いやがるもなにも,どうやって実装するんですか? さすがにMOPの
ような普段使わない機能のためにメソッド毎のソースを保存して普
段の効率を落す気は無いですし,それ以外の方法って思い付かない
ですし.それにCで実装されているメソッドにはソースは無いです
よね.
|あと, APIとしては, Object#instance_variables ではインスタンス変数を表
|す特別なオブジェクトを返す方法もありますね. そうすると,
|Object#instance_variable_valueはいらなくなって,
|InstanceVariable#value みたいなメソッドが必要になりますね(私個人として
|は, こっちのインターフェイスの方が好きなのですが...). あと, イテレータ
|とする方法もあるかな?
|
|object.instance_variables do
| |name, access, value|
| ...
|end
|
|イテレータにすると値まで取り出せるわけですね.
インスタンス変数のaccessってなに?
最終的な印象としてはちょっと抵抗があるというのが事実です.ま
あ,とりあえずは抵抗の無い
Module#constants
Object#methods
くらいを導入しようかなあ.あ,でもクラスに対してmethodsって
聞いた時にはクラスオブジェクトの知っているメソッドではなく,
クラスインスタンスの知っているメソッドを返して欲しいなあ.
まつもと ゆきひろ /:|)