[#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:3313] Re: meta programings [Re:exceptions (Re: Ver 1.1 [Re: Matrix])]
まつもと ゆきひろです
In message "[ruby-list:3309] Re: meta programings [Re:exceptions (Re: Ver 1.1 [Re: Matrix])]"
on 97/07/09, 石塚圭樹 <keiju@bc.mbn.or.jp> writes:
|けいじゅ@今はフリー(^^;;;です.
|イメージが違うかも知れないっすね. 今までこの手のプログラムをやっていて
|めんどくさいなと思った点として,
|
|1. あるクラスにローカルなクラスの定義
|2. そうやって生成したクラスに対して, クラス定数, メソッドなどを定義する
|3. メソッド定義時おける文字列操作のめんどくささ
|
|があります.
|
|1, 2に対しては, 構文ベースでない関数ベースのAPIがあれば良いかなと感じ
|ています.
|
|1.
| new_class = Class.new("class-name", super-class, context-class)
|2.
| new_class.def_class_constant(:variable_name)
| new_class.def_method("method source")
| ...
|
|などなど. これらは, Classの(特異)メソッドで十分な気がします.
context-classってのは良く分かりませんが,こういうのを作って
みたんですけど,どうでしょう.
Module.new(name)
nameで指定される名前を持つ新しいモジュールを生成する.戻
り値は定数などにバインドされていないので,自分で設定する
必要がある.イテレータとして呼ばれた時にはイテレータブロッ
ク内で定義したメソッドは新たに生成されたモジュールに定義
される.
Class.new(name[, super])
nameで指定されるsuperをスーパークラスとする新しいクラス
を生成する.他はModule.newと同じ.
以下のようなプログラムが動いています.
module A
Foo = Module.new("Foo"){
def bar
print "bar\n"
end
}
p Foo.type
Bar = Class.new("Bar"){
include Foo
def baz
print "baz\n"
end
}
p Bar.type
p bar = Bar.new
bar.bar
bar.baz
end
で,こういうの作ってみて分かったんですが,これをメソッドの中
から呼ぶとnested method definitionといって怒られます.この辺
をなんとかしないと使いにくいでしょうね.
あと,トップレベルでは自動的にprivateになる仕様もこういう時
には面倒でした.
定数やメソッドの定義は,イテレータブロックで行うのではなく,
関数的なAPIにした方が良いのかも知れません.
|問題は3で, 文字列操作よりも簡単に行うには, 構文をそのままクラスとして
|マップした何かがあればいいかなと思ったわけです. イメージとしては, リス
|ト処理でLispのプログラムを作るイメージです. リスト処理に相当する元とし
|て構文処理かなと...
|
|# でも, そこまでしなくても良いかなあ...
lispじゃないんだから….
まつもと ゆきひろ /:|)