[#16708] includedir — nobu.nakada@...
なかだです。
[#16732] sharing sub-regexp — Tanaka Akira <akr@...17n.org>
Oniguruma についてひとつ要望があります。
Tanaka Akiraさんの<hvopu1hxfyd.fsf@coulee.a02.aist.go.jp>から
まつもと ゆきひろです
In article <1017890618.302241.17865.nullmailer@ev.netlab.jp>,
Tanaka Akiraさんの<hvo7knn93ug.fsf@coulee.a02.aist.go.jp>から
In article <20020405044506.D4784349@helium.ruby-lang.org>,
Tanaka Akiraさんの<hvopu1e4omy.fsf@coulee.a02.aist.go.jp>から
In article <20020410025054.C8DF0915@helium.ruby-lang.org>,
In article <hvor8lnchak.fsf@coulee.a02.aist.go.jp>,
前田です。
In article <87pu15z80q.wl@studly.priv.netlab.jp>,
前田です。
In article <87g01x1e6m.wl@studly.priv.netlab.jp>,
西山和広です。
In article <20020416180631.988E.ZN@mbf.nifty.com>,
前田です。
In article <87u1qaj0xe.wl@studly.priv.netlab.jp>,
前田です。
まつもと ゆきひろです
In article <1019116103.420173.12691.nullmailer@picachu.netlab.jp>,
前田です。
なかだです。
In article <200204181023.g3IANgM21124@sharui.nakada.kanuma.tochigi.jp>,
まつもと ゆきひろです
In article <1019140164.869863.14833.nullmailer@picachu.netlab.jp>,
[#16757] === — "Akinori MUSHA" <knu@...>
Array, Hash, Proc などで、 === が以下のように定義されていると
[#16761] StringIO — tadf@...
ふなばです。
なかだです。
ふなばです。
なかだです。
ふなばです。
青山です。
まつもと ゆきひろです
In article <1022740594.117106.6073.nullmailer@picachu.netlab.jp>,
前田です。
In article <874rgqdt3x.wl@studly.priv.netlab.jp>,
青山です。
まつもと ゆきひろです
青山です。
まつもと ゆきひろです
青山です。
まつもと ゆきひろです
青山です。
[#16776] Ruby 1.7.2 segfault — takuma ozawa <metal@...>
小澤といいます。
なかだです。
[#16790] Ruby Shim — "Akinori MUSHA" <knu@...>
1.7 early access kit という仮称で提案した構想ですが、先ほど
新井です。
At Tue, 9 Apr 2002 02:12:27 +0900,
なかだです。
[#16816] remove_const: cannot remove constant — Koji Arai <JCA02266@...>
新井です。
[#16833] math.c 1.10 — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
まつもと ゆきひろです
さくです。
なかだです。
まつもと ゆきひろです
[#16868] make error on debian potato — Wakou Aoyama <wakou@...>
青山です。
[#16869] Makefiles dependency — nobu.nakada@...
なかだです。
わたなべです。
なかだです。
わたなべです。
なかだです。
わたなべです。
なかだです。
[#16894] compile failure in process.c, setpgrp() & setpgid() — Ryo HAYASAKA <ryoh@...>
早坂@北陸先端です.
[#16923] Module::new with block is useful? — "Shin'ya Adzumi" <adzumi@...>
あづみです。
[#16978] Re: [rubyist:1343] Re: another sample for the Method — Koji Arai <JCA02266@...>
新井です。
[#16989] making Proc in C (Re: [rubyist:1356] Re: another sample for the Method) — nobu.nakada@...
なかだです。
[ruby-dev:16765] Set
Set というクラスを書いてみました。これは重複なし、順序なしの
要素集合を表現するものです。
自分で使っていて、ほぼ満足な仕上がりと思えてきたのでアナウンス
します。物は rough にあります。
http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/rough/lib/set.rb
Ruby で何らかのリスト、たとえばファイルリストを管理するとき、
一般的には Array を使うと思います。要素の追加や削除は自在ですし、
&, |, - など、リスト同士の演算もサポートしています。
ところが、これには大きな問題があります。要素の数が増えてくると
include?() や &, |, - などの演算が目に見えて遅くなってしまう。
全要素をなめて比較せざるを得ないというのは非常に不利な点です。
ソートしてあれば bsearch が使えますが、常にソートしておくのは
コストや手間がかかります。
一方 Hash を使うという解はあります。値の追加や検索は高速ですし、
each_key や keys で走査や配列化もできます。
しかし、これにも欠点があります。まず、キーにダミーの値を登録
するという操作が直感的でない。そして、リスト同士の演算も困難。
rubygarden や #ruby-lang で話を聞くと、 Array と Hash を適宜
組み合わせて使っているという人が多いようで、これは専用のクラスを
作る価値がありそうだと思いました。
そこで、 Set の登場です。Hash の高速検索に Array の直感的な
演算能力を掛け合わせ、任意の Enumerable オブジェクトとの様々な
演算ができるようになっています。(ここに載せるのは無駄なので、
コードに埋め込んであるドキュメントを参照してください)
今の実装は Hash を Ruby でラップしただけですが、これでも十分な
速度で動いてくれています。ただ、 Ruby 内部でもこの手の重複なし
集合の操作に Hash を使ったり Array を使ったりしているので、 C で
実装して組み込んでも使いでがあるかなと思ったりはしています。
この手のは標準にないと使えないので、ある程度反応がよければ
lib/set.rb に入れる方向で考えています。
ということで、何か注文や指摘があればよろしくお願いします。
--
/
/__ __ Akinori.org / MUSHA.org
/ ) ) ) ) / FreeBSD.org / Ruby-lang.org
Akinori MUSHA aka / (_ / ( (__( @ iDaemons.org / and.or.jp
"Somewhere out of a memory.. of lighted streets on quiet nights.."