[#8468] require で SEGV — ruby <g96p0935@...>
西本です。
[#8469] [PATCH] -s command line option — nobu.nakada@...
なかだです。
[#8507] mode_t in file.c — Katsuyuki Komatsu <komatsu@...>
小松です。
[#8530] Enumerable and rand — Koretsugu Daigoro <tmmcross@...>
これつぐです。
まつもと ゆきひろです
これつぐです。
まつもと ゆきひろです
原です。
まつもと ゆきひろです
原です。
ごとけんです
これつぐです。
[#8565] interface declaretion — "Dai.K." <MAP2303@...>
[#8581] Re: [ruby-list:19228] Ruby 1.4.3 — Katsuyuki Komatsu <komatsu@...>
小松です。
まつもと ゆきひろです
えぐち@エスアンドイー です。
小松です。
まつもと ゆきひろです
小松です。
[#8622] Win32API (Re: Ruby 1.4.3 binaries for Cygwin and DJGPP) — WATANABE Hirofumi <Hirofumi.Watanabe@...>
わたなべです.
有馬@FITECです。
よしだです
[#8623] [BUG?] core dump `ruby -r debug' — IWAMURO Motonori <iwa@...>
岩室@富士通です。
[#8635] slow gsub — WATANABE Hirofumi <Hirofumi.Watanabe@...>
わたなべです.
[#8645] urllib and httplib — TAKAHASHI Masayoshi <maki@...>
高橋征義です。
なひです.
高橋征義です。
なひです.
まつもと ゆきひろです
なひです.
青山です。
なひです.
高橋征義です。
まつもと ゆきひろです
高橋征義です。
なひです.
西@九大です。
なかだです。
あおきです。
[#8650] [PATCH] Ruby/Tk — Koji Arai <JCA02266@...>
新井です。
新井です。
新井です。
新井です。
永井@知能.九工大です.
新井です。
永井@知能.九工大です.
新井です。
新井です。
[#8665] [mswin32] STDERR does not work during `_function. — "NAKAMURA, Hiroshi" <nakahiro@...>
なひです.
金子です。
金子です。
[#8667] make symlinks around libruby.so in instruby.rb — akira yamada / やまだあきら <akira@...>
[#8692] [win] dir name — KANEKO Naoshi <wbs01621@...>
金子です。
小田@QNES です。
えぐち@エスアンドイー です。
小田@QNES です。
えぐち@エスアンドイー です。
なかだです。
小田@QNES です。
えぐち@エスアンドイー です。
小田@QNES です。
[#8705] [mswin32] 100% CPU usage when use sleep — Katsuyuki Komatsu <komatsu@...>
小松です。
まつもと ゆきひろです
小松です。
[#8722] [mswin32] Win32API — KANEKO Naoshi <wbs01621@...>
金子です。
小松です。
まつもと ゆきひろです
[#8741] Re: [ruby-list:19945] Re: array + empty string — Wakou Aoyama <wakou@...>
青山です。
まつもと ゆきひろです
青山です。
まつもと ゆきひろです
ごとけんです
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
[#8742] [REQ] Array#each{|a,b,...|}, Array#shift/pop(num) — Kazunori NISHI <kazunori@...>
西@九大です。
まつもと ゆきひろです
西@九大です。
まつもと ゆきひろです
西@九大です。
まつもと ゆきひろです
えぐち@エスアンドイー です。
西@九大です。
あおきです。議論も好き。
西@九大です。
あおきです。
まつもと ゆきひろです
有馬です。
knuです。
まつもと ゆきひろです
これつぐです。
knuです。
まつもと ゆきひろです
あおきです。
まつもと ゆきひろです
In message "[ruby-dev:8792] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num)"
まつもと ゆきひろです
ごとけんです
ごとけんです
なかだです。
ごとけんです
[ruby-dev:8577] Re: [REQ] {enumerable, integer, range}.rand
かんだです。
# こっちフォローしてる余裕ないですが
matz@netlab.co.jp (Yukihiro Matsumoto)さんの書かれた、
「[ruby-dev:8574] Re: [REQ] {enumerable, integer, range}.rand」
からの引用です。
> まつもと ゆきひろです
>
> In message "[ruby-dev:8569] Re: [REQ] {enumerable, integer, range}.rand"
> on 99/12/07, Kazunori NISHI <kazunori@swlab.csce.kyushu-u.ac.jp> writes:
> で、「あるcollectionのランダムな1要素を選択する」という機能
> は、collectionのメソッドとして見えた方が自然だと私に思えると
> 言うそれだけのことです。
やはり Collection モジュールを提案した方がよさそうに思います(^^;
ぼくも Enumeration#random_get() はイヤですが、Collection#random_get() は
うれしいかもしれないなーというところ。
で、Collection が何なのかというのが前にメールでありましたが、完全でな
いフォローをば。
Collection は名の通り、集合です。Array から順序を無くしたようなもので
しょうか。
Set との違いは知りませんが、Java だと重複の無いのが Set らしいですね。
手許の Java1.2.2 API から interface Collection のメソッドを抜き出すと:
# 使ったことないので実際は違うかもしれませんが
boolean add(Object)
boolean addAll(Collection)
void clear()
boolean contains(Object)
boolean containsAll(Collection)
boolean equals(Object)
boolean isEmpty()
Iterator iterator() // Iterator ってのは Ruby でいう Enumeartion です。
boolean remove(Object)
boolean removeAll(Collection)
boolean retainAll(Collection)
int size()
Object[] toArray()
Object[] toArray(Object[]) // 引数配列は、型を指定する。
と、名前からもかなり想像付くのではないでしょうか?
ただ、Java の interface はインターフェースだけを宣言し(^^;、定義は Class
で行うもので、Ruby は include 元に定義されたメソッドを追加するものですから、
より基本的なものを include元のクラスが実装しているということになります。
Iterator を返すメソッドがあることから、Collection is_a Enumeration にし
ていいでしょう。
remove(Object), add(Object), size() あたりは基本的なものですね。
contains(Object) は each() でもできますけど、元のオブジェクトが実装して
いてほしいかなぁ。あっと、今も Ruby の Enumeration に member?() とかありま
すか(^^;
で、例えば
module Collection
include Enumeration
def addAll(col)
col.each { |a| add(a) }
end
...
end
class A
include Collection
def each; ... end
def remove(obj); ...; end
def add(obj); ...; end
def size(); ...; end
end
などと使うわけです。
で、意味としては random_get は Collection に実装すべきでしょう…でも
each() に対する関係は contains/member? と同じですねぇ。
ちなみに Javaだとさらに List というのがあって、こいつは順序付きの
Collection です。Map はキーから値が引けるやつです。この辺をごっちゃにして
Collection と言ってました、僕は(^^;
と、Collection 欲しいんなら仕様示せとも思われるでしょうが、コレクション
関係のクラス群の設計は結構面倒なんですよね。Java だけじゃ片寄るから、他も
調べたいし(STLとかどうなってるのかな?)。
そういえばまつもとさんはなぜ Enumeration だけ実装したんでしょう?
--
だい@楓街
MAP2303@mapletown.net 紅玉軌道異変アリ。