[#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:18719] Re: Enumerable#zip

From: Tanaka Akira <akr@...17n.org>
Date: 2002-11-09 05:30:44 UTC
List: ruby-dev #18719
In article <1036742681.769607.13070.nullmailer@picachu.netlab.jp>,
  matz@ruby-lang.org (Yukihiro Matsumoto) writes:

> そうですね。threadやcontinuationを使えばEnumerableでも並行
> eachができますが(添付)。

もちろんそれは知っていますが、自制心を発揮して触れませんでした。zip を
作るなら thread や continuation を使って有限でない Enumerable も扱える
ようにすべきだと主張するほうがいいでしょうか? なお、その場合、zip の返
り値は Enumerable of Enumerable になります。

> どっちかっていうと見かけが悪いってところじゃないでしょうか。

これは(説得が)難しい...
書きやすさに関する議論でどうにかなるといいんですが。

In article <1036808480.850715.3648.nullmailer@picachu.netlab.jp>,
  matz@ruby-lang.org (Yukihiro Matsumoto) writes:

> 微妙って言うか、そもそもインデックスができないEnumerableもあ
> りますし(もともと必須ではないから)、あと有限でないEnumerable 
> もあるわけですから、内部イテレータしかなければ(スレッドや継
> 続を使わない限り)、Arrayでないものを入れるのは難しいんでない
> かなあと思います。

「インデックスができないEnumerable」というのはどういう意味でしょうか?
マニュアルの

| Enumerable
| 
| 繰り返しを行なうクラスのための Mix-in。このモジュールのメソッドは全て each を用
| いて定義されているので、インクルードするクラスには each が定義されていなければ
| なりません。

というところからして、each は前提としていいわけで、0 から始めて each
での各繰り返しごとにインクリメントしていけば、必ずインデックスをつけら
れると思うのですが。

有限でない Enumerable で困るというのは同意します。最終的に Array の
Array を返すのであれば、無限に大きなオブジェクトを作るはめになって無限
ループにならざるを得ませんので。

でも、その「無限ループが困るから Enumerable は扱わない」という立場は
Enumerable の他のメソッドと整合がとれていないんじゃないでしょうか。
all?, collect, map, grep, inject, max, min, partition, reject, sort,
sort_by, to_a, entries あたりはみんな無限ループになるように思います。

ついでにいえば、現在の zip も

% ruby -e '
class C
  include Enumerable
  def each
    loop {
      yield 1
    }
  end
end
p C.new.zip([2])'

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

In article <1036808603.803886.3660.nullmailer@picachu.netlab.jp>,
  matz@ruby-lang.org (Yukihiro Matsumoto) writes:


> いや、Cから継続やスレッドを使うのが面倒だからというのは大き
> な理由ですから、みくびっているとは言えないと思います。気がつ
> いてないと言われたら違いますけど。

Array of Array を返す限りにおいて thread や continuation は必要ないと
思うんですが。Enumerable に副作用があって実行順序に依存することってそ
んなに重要ですかね?

> 人工的かどうかは私は気にしてません。それが書きやすさを支援す
> るかどうかだけに関心があります。どうせ人工言語だし。

たしかにそれはそうですね。表現しなおします。

転置行列みたいなもの(一般には 2次元のテーブルの縦横をひっくり返すもの)
を書くのには、クラスメソッドにするか、Enumerable の Array に適用される
メソッドにするかがいい気がします。現在の、最初の列とそれ以降の列がレシー
バと引数にわかれる形式だと、Array of Array で表現されていたものをまず
最初とそれ以降に分割してから適用しないといけません。

さて問題は転置行列みたいなものが zip の用途として想定されているものか
どうかです。もし主要な用途として想定されているのであれば現在の形式はよ
ろしくないということになります。

で、主要と想定されている用途はなにかというのが疑問になるわけですが...
導入された経緯が「Dan SugalskiのPerl6の話に触発されて」としか書いてな
いのでわかりません。どんな用途を想定しているんですか?
-- 
[田中 哲][たなか あきら][Tanaka Akira]
「ふえろ! わかめちゃん作戦です$(C⊇」(Little Worker, 桂遊生丸)

In This Thread