[#18651] Enumerable#zip — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

77 messages 2002/11/05
[#18659] Re: Enumerable#zip — Shin-ichiro HARA <sinara@...> 2002/11/06

原です。

[#18669] Re: Enumerable#zip — matz@... (Yukihiro Matsumoto) 2002/11/06

まつもと ゆきひろです

[#18675] Re: Enumerable#zip — Shin-ichiro HARA <sinara@...> 2002/11/07

原です。

[#18684] Re: Enumerable#zip — matz@... (Yukihiro Matsumoto) 2002/11/07

まつもと ゆきひろです

[#18690] Re: Enumerable#zip — Shin-ichiro HARA <sinara@...> 2002/11/08

原です。

[#18728] Re: Enumerable#zip — Daisuke Aoki <dai@...> 2002/11/09

青木@横浜です。基本的にROM な人間なんですがなんとなく書いてみました。

[#18774] Re: Enumerable#zip — Daisuke Aoki <dai@...> 2002/11/13

青木@横浜です。

[#18799] Re: Enumerable#zip — Shin-ichiro HARA <sinara@...> 2002/11/15

原です。

[#18802] Re: Enumerable#zip — Tanaka Akira <akr@...17n.org> 2002/11/15

In article <5.1.1.8.2.20021115145423.03541008@blade.nagaokaut.ac.jp>,

[#18803] Re: Enumerable#zip — matz@... (Yukihiro Matsumoto) 2002/11/15

まつもと ゆきひろです

[#18806] Re: Enumerable#zip — Tanaka Akira <akr@...17n.org> 2002/11/15

In article <1037348006.479453.32695.nullmailer@picachu.netlab.jp>,

[#18808] Re: Enumerable#zip — matz@... (Yukihiro Matsumoto) 2002/11/15

まつもと ゆきひろです

[#18823] Re: Enumerable#zip — Shugo Maeda <shugo@...> 2002/11/18

前田です。

[#18833] Re: Enumerable#zip — Tanaka Akira <akr@...17n.org> 2002/11/18

In article <8765uv4fu7.wl@studly.priv.netlab.jp>,

[#18835] Re: Enumerable#zip — Shugo Maeda <shugo@...> 2002/11/18

前田です。

[#18845] Re: Enumerable#zip — Tanaka Akira <akr@...17n.org> 2002/11/19

In article <874raf6xuc.wl@studly.priv.netlab.jp>,

[#18870] Re: Enumerable#zip — Shugo Maeda <shugo@...> 2002/11/21

前田です。

[#18873] Re: Enumerable#zip — Tanaka Akira <akr@...17n.org> 2002/11/21

In article <87fztv5zir.wl@studly.priv.netlab.jp>,

[#18692] Re: Enumerable#zip — Tanaka Akira <akr@...17n.org> 2002/11/08

In article <4.3.2-J.20021108124934.033a2eb0@blade.nagaokaut.ac.jp>,

[#18696] Re: Enumerable#zip — Shin-ichiro HARA <sinara@...> 2002/11/08

原です。

[#18713] Re: Enumerable#zip — matz@... (Yukihiro Matsumoto) 2002/11/09

まつもと ゆきひろです

[#18719] Re: Enumerable#zip — Tanaka Akira <akr@...17n.org> 2002/11/09

In article <1036742681.769607.13070.nullmailer@picachu.netlab.jp>,

[#18721] Re: Enumerable#zip — matz@... (Yukihiro Matsumoto) 2002/11/09

まつもと ゆきひろです

[#18723] Re: Enumerable#zip — Tanaka Akira <akr@...17n.org> 2002/11/09

In article <1036847474.074389.7942.nullmailer@picachu.netlab.jp>,

[#18735] Re: Enumerable#zip — Shin-ichiro HARA <sinara@...> 2002/11/11

原です。

[#18746] Re: Enumerable#zip — matz@... (Yukihiro Matsumoto) 2002/11/11

まつもと ゆきひろです

[#18749] Re: Enumerable#zip — Shin-ichiro HARA <sinara@...> 2002/11/12

原です。

[#18766] Re: Enumerable#zip — matz@... (Yukihiro Matsumoto) 2002/11/13

まつもと ゆきひろです

[#18800] Re: Enumerable#zip — Shin-ichiro HARA <sinara@...> 2002/11/15

原です。

[#18801] Re: Enumerable#zip — matz@... (Yukihiro Matsumoto) 2002/11/15

まつもと ゆきひろです

[#18804] Re: Enumerable#zip — Shin-ichiro HARA <sinara@...> 2002/11/15

原です。

[#18805] Re: Enumerable#zip — matz@... (Yukihiro Matsumoto) 2002/11/15

まつもと ゆきひろです

[#18754] Different caller(0) in trace_func when NameError from toplevel between 1.6 and 1.7 — "NAKAMURA, Hiroshi" <nahi@...>

なひです。

27 messages 2002/11/12
[#18755] Re: Different caller(0) in trace_func when NameError from toplevel between 1.6 and 1.7 — nobu.nakada@... 2002/11/12

なかだです。

[#18776] Re: Different caller(0) in trace_func when NameError from toplevel between 1.6 and 1.7 — "NAKAMURA, Hiroshi" <nakahiro@...> 2002/11/14

なひです。

[#18777] Re: Different caller(0) in trace_func when NameError from toplevel between 1.6 and 1.7 — "NAKAMURA, Hiroshi" <nakahiro@...> 2002/11/14

なひです。ひええすいません、タブが落ちちゃった。

[#18789] Re: Different caller(0) in trace_func when NameError from toplevel between 1.6 and 1.7 — "NAKAMURA, Hiroshi" <nahi@...> 2002/11/14

なひです。

[#18795] Re: Different caller(0) in trace_func when NameError from toplevel between 1.6 and 1.7 — nobu.nakada@... 2002/11/15

なかだです。

[#18820] deprecated method( Re: Different caller(0) in trace_func when NameError from toplevel between 1.6 and 1.7) — nobu.nakada@... 2002/11/18

なかだです。

[#18821] Re: deprecated method( Re: Different caller(0) in trace_func when NameError from toplevel between 1.6 and 1.7) — matz@... (Yukihiro Matsumoto) 2002/11/18

まつもと ゆきひろです

[#18825] Re: deprecated method( Re: Different caller(0) in trace_func when NameError from toplevel between 1.6 and 1.7) — nobu.nakada@... 2002/11/18

なかだです。

[#18861] class variables — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

31 messages 2002/11/20
[#18913] Re: class variables — "K.Kosako" <kosako@...> 2002/11/22

Yukihiro Matsumotoさんの

[#18895] [patch] install bat file on Windows — "U.Nakamura" <usa@...>

こんにちは、なかむら(う)です。

14 messages 2002/11/22
[#18900] Re: [patch] install bat file on Windows — "Akinori MUSHA" <knu@...> 2002/11/22

At Fri, 22 Nov 2002 11:09:19 +0900,

[#18903] Re: [patch] install bat file on Windows — "U.Nakamura" <usa@...> 2002/11/22

こんにちは、なかむら(う)です。

[#18966] [ONIGURUMA] \S doesn't match multibyte char (Re: [ruby-list:36618] Re: 全角文字に挟まれた半角スペースを削除するには?) — nobu.nakada@...

なかだです。

13 messages 2002/11/28

[ruby-dev:18728] Re: Enumerable#zip

From: Daisuke Aoki <dai@...>
Date: 2002-11-09 16:56:02 UTC
List: ruby-dev #18728
青木@横浜です。基本的にROM な人間なんですがなんとなく書いてみました。

Tanaka Akira wrote:
> 有限でない Enumerable で困るというのは同意します。最終的に Array の
> Array を返すのであれば、無限に大きなオブジェクトを作るはめになって無限
> ループにならざるを得ませんので。
> 
> でも、その「無限ループが困るから Enumerable は扱わない」という立場は
> Enumerable の他のメソッドと整合がとれていないんじゃないでしょうか。
> all?, collect, map, grep, inject, max, min, partition, reject, sort,
> sort_by, to_a, entries あたりはみんな無限ループになるように思います。

無限ループになっても大丈夫な構造を積極的導入するとか。
例えば、sort なんか sort(block) とブロックをとって、
block.yield(最初からn個の要素でソートした配列,n) というものを
コールバックという形で実行するという形で、段々とソートしていく感じを
与えるとか。こういう仕様は上記の他のメソッドの多くでも導入できるし、
コールバックが true を返さなければループを終わらせるということに
すれば、ソートの完全性は失われるけど、柔軟なソートになるんじゃない
のかなと思う。ただ、ソートの速度は失われるかもしれません。
とは言え、需要は全然なさそうですけど :-P


まつもとさんが thread/continuation を使った並列 each を示してますけど、
むしろ、Enumerable の each メソッドの存在という仮定に代わって
findfirst/next 的なメソッドという「始め」と「次」があればいいという
仮定に変えることでより柔軟性が上がるんじゃないのかなと思います。
each はとにかく終わるまで次の処理に移れないというネックがあり
ますし。ただ、each メソッドを書くより、findfirst/next 的なメソッドを
書く方が面倒(というか汚くなる)な感じがあって(自分なりに試行錯誤
してみたもののきれいにはいかない)、たぶん、採用されることは
ないんだろうなと思います。

以上についての参考のスクリプトを添付しておきます。1.7以降用です(^^)

> というように無限ループは起こりますし、Generator 版の zip もあの実装だ
> と無限ループになります。

each が無限に続くと結果を出すことが重要な zip も結果が出る
前に無限に終わらないのは当然で、Array#each_zip {|i| ... }
みたいなものを想定しないとだめなのでは。
でも、[ruby-dev:18721] によると、zip してから並列 each する意図が
あって、別に並列 each して zip するつもりはないようですね。
Enumerable が対象だと後者じゃないのかなと思うものの。

最後に、zip の仕様について、
 ・Array#zip_max : (a)
 ・Array#zip_min : (b)
 ・もしくは、Array#zip(max) : (a),(b)
   Array のメソッドで引数が true/false/nil のとき。
 ・Enumerable#zip(a,b,...) : (c)
   Enumerable を include するクラスのメソッドで引数が
   true/false/nil でないとき。
とか。量が多くてだめかな。

-- 
青木大輔 <dai@y7.net>

Attachments (1)

each_step.lzh (1.74 KB, Archive)

In This Thread