[#3747] constants (or class vriable?) — Wakou Aoyama <wakou@...>
青山です。
原です。
青山です。
まつもと ゆきひろです
In message <199812080034.JAA05946@picachu.netlab.co.jp>
立石です。
まつもと ゆきひろです
[#3773] pack("M")/unpack("M") — shugo@... (MAEDA Shugo)
前田です。
[#3794] port NetBSD/ alpha 1.3I — SHIROYAMA Takayuki <psi@...>
[#3826] ruby 1.1d0 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
渡辺哲也です。
ふなばです。
笠原です。
前田です。
[#3851] tkutil patch (for 1.1d0) — ttate@...
立石です。
[#3859] missing/setenv.c in 1.1d0 — Inaba Hiroto <inaba@...>
稲葉です。こんなにパッチがあると、みのがされてしまうかも。
[#3862] 1.1d0 new here document — Wakou Aoyama <wakou@...>
青山です。
まつもと ゆきひろです
青山です。
まつもと ゆきひろです
[#3873] (?: ) does not work? — shugo@... (MAEDA Shugo)
前田です。
まつもと ゆきひろです
前田です。
まつもと ゆきひろです
前田です。
白山@Stellarです。
[#3881] I want to catch all jump — shugo@... (Shugo Maeda)
前田です。
まつもと ゆきひろです
前田です。
まつもと ゆきひろです
[#3894] ruby 1.1d1 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
わたなべです.
[#3899] interpreter reinitialization — shugo@... (Shugo Maeda)
前田です。
まつもと ゆきひろです
前田です。
まつもと ゆきひろです
前田です。
まつもと ゆきひろです
前田です。
まつもと ゆきひろです
[#3962] ruby 1.3(!) released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#3966] [BUG] exception in safe level 4 — shugo@... (Shugo Maeda)
前田です。
[#3997] [BUG] "#{}" while 1 — gotoken@... (GOTO Kentaro)
ごとけんです
まつもと ゆきひろです
[#4002] config.guess — Koji Arai <JCA02266@...>
新井です。
まつもと ゆきひろです
新井です。
まつもと ゆきひろです
新井です。
まつもと ゆきひろです
笠原です。
まつもと ゆきひろです
えぐち@エスアンドイー です。
[#4005] [BUG] ruby 1.3(98/12/24) [i686-linux] at rb_gc_mark() — Ryo HAYASAKA <hayasaka@...>
早坂@会津大学といいます。
In message "[ruby-dev:4005] [BUG] ruby 1.3(98/12/24) [i686-linux] at rb_gc_mark()"
早坂@会津大学です。
[#4015] Integer proper methods — gotoken@... (GOTO Kentaro)
ごとけんです
[#4030] module Precision — gotoken@... (GOTO Kentaro)
ごとけんです
ごとけんです
まつもと ゆきひろです
ごとけんです
けいじゅ@日本ラショナルソフトウェアです.
ごとけんです
まつもと ゆきひろです
まつもと ゆきひろです
ごとけんです
まつもと ゆきひろです
ごとけんです
ごとけんです
けいじゅ@日本ラショナルソフトウェアです.
ごとけんです
まつもと ゆきひろです
まつもと ゆきひろです
まつもと ゆきひろです
ごとけんです
ごとけんです
けいじゅ@日本ラショナルソフトウェアです.
ごとけんです
けいじゅ@日本ラショナルソフトウェアです.
ごとけんです
けいじゅ@日本ラショナルソフトウェアです.
ごとけんです
けいじゅ@日本ラショナルソフトウェアです.
最近あんまり建設的でないわたし.
けいじゅ@日本ラショナルソフトウェアです.
ごとけんです
原です。
[#4032] [Req] make-symbol? — shugo@... (Shugo Maeda)
前田です。
[ruby-dev:3777] Re: functor? (Re: constants (or class vriable?))
ひわだです。
From: matz@netlab.co.jp (Yukihiro Matsumoto)
> |* MLのようなFunctor
> すいません,それらがどのようなものかもうちょっと説明していた
> だけませんか?
> # ひわださんあたりが得意そう.
詳しくはないですが、ruby に取り込んで欲しい feature があるのでなんとか
説明してみます。(既に立石さんからの説明がありましたが、書いてしまった
ので ^^;)。
#ちなみに僕が使ってるのは ML の方言の O'Caml の方言の O'Labl なので
#SML/NJ とは違うかも知れません。
functor というのは (O'Caml の Introduction によると)
Functors are ``functions'' from structures to structures. They are
used to express parameterized structures: a structure A parameterized
by a structure B is simply a functor F with a formal parameter B
(along with the expected signature for B) which returns the actual
structure A itself. The functor F can then be applied to one or
several implementations B1 ... Bn of B, yielding the corresponding
structures A1 ... An.
だそうです。ruby でいうと、たとえば、
module IntStriction
def self.member?(it)
it.kind_of? Integer
end
end
IntArray = StrictArray(IntStriction)
a = IntArray.new
a.push 1
a.push "hoge" # => error!
のようにして用途に合わせてパラメタライズされたクラスなどを生成して使う
とか(Caml では module -> module ですが)。ユーザから見ると、 Array を
delegate してメソッドを書換えるよりも簡単に見えるのが利点でしょうか。
#他の例としては、比較方法等でパラメタライズされた priority queue とか…。
こういうのを ruby で書こうとすると、module_eval が多分必要になります。
もし、匿名クラスや匿名モジュールの生成を文法からサポートできれば、
def self.StrictArray(mod)
anonymous = class < Array
MOD = mod # <-- 何らかの方法で parameter を匿名クラスに渡したい
def push(data)
raise "error!" unless MOD.member? data
super(data) # <-- super も使いたい
end
end
anonymous
end
のように、わりと簡単に書けるようになると思います。module_eval を使えば
書けないことはないですが。
というわけで、匿名クラス匿名モジュールの文法サポートがほしいというお願
いでした ^^;;;
--
檜田 和浩 ( hiwada@kuee.kyoto-u.ac.jp )