From: matz@... (Yukihiro Matsumoto) Date: 2002-11-09T22:11:18+09:00 Subject: [ruby-dev:18721] Re: Enumerable#zip まつもと ゆきひろです In message "[ruby-dev:18719] Re: Enumerable#zip" on 02/11/09, Tanaka Akira writes: |> どっちかっていうと見かけが悪いってところじゃないでしょうか。 | |これは(説得が)難しい... |書きやすさに関する議論でどうにかなるといいんですが。 どうにかなると思います。 |「インデックスができないEnumerable」というのはどういう意味でしょうか? |マニュアルの | || Enumerable || || 繰り返しを行なうクラスのための Mix-in。このモジュールのメソッドは全て each を用 || いて定義されているので、インクルードするクラスには each が定義されていなければ || なりません。 | |というところからして、each は前提としていいわけで、0 から始めて each |での各繰り返しごとにインクリメントしていけば、必ずインデックスをつけら |れると思うのですが。 IOのようにeachに再現性のない場合もありますし。 無限に続くEnumerableについては、おっしゃるように |でも、その「無限ループが困るから Enumerable は扱わない」という立場は |Enumerable の他のメソッドと整合がとれていないんじゃないでしょうか。 |all?, collect, map, grep, inject, max, min, partition, reject, sort, |sort_by, to_a, entries あたりはみんな無限ループになるように思います。 ちゅーことなので、考える必要はないと思います。 |で、主要と想定されている用途はなにかというのが疑問になるわけですが... |導入された経緯が「Dan SugalskiのPerl6の話に触発されて」としか書いてな |いのでわかりません。どんな用途を想定しているんですか? Parallel iterationです。 for x,y in a.zip(b) ... end のようなの。 まつもと ゆきひろ /:|)