In article <5.1.1.8.2.20021111163542.032f2e80 / blade.nagaokaut.ac.jp>,
  Shin-ichiro HARA <sinara / blade.nagaokaut.ac.jp> writes:

> ところで、この Rand クラスの例は、「二人で数字を出し合って一致するまで
> のゲームの回数を調べる実験」なんですが、「無限列を複数同時に走らせ、し
> かも zip は有限回で終わる(終える)本質的な例」になっているんじゃない
> でしょうか。

本筋にはぜんぜん関係ありませんが、無限に続く可能性は無限に小さい、かな。

> つまり、平行 each には需要がある、と言いたいわけです。

そりゃそれなりにはあるでしょうが、今すぐ組み込みにする程ではないという
あたりは合意がとれていると思っています。

generator あるいはもう一段低レベルのコルーチンサポートライブラリを添付
するのは悪くないと思いますけど。

In article <5.1.1.8.2.20021111163945.03f3c008 / blade.nagaokaut.ac.jp>,
  Shin-ichiro HARA <sinara / blade.nagaokaut.ac.jp> writes:

> なーんだ、欲しいのは配列じゃなくて、(簡易)平行 each じゃないですか。
> それじゃあ、いっぺん配列を作って zip して帰ってきた配列でイテレートす
> るのは二度手間と感じるわけだ。

この手間の感覚なんですが、使い慣れると Ruby レベルでの字面の長さに比例
する感覚に変わっていくんじゃなかろうかという気がします。つまり、

for x,y in a.zip(b) ... end
と
[a,b].zip.each {|x,y| ...}

では、ほとんど同じような手間の感覚になるんじゃないかと。

とくに、有限並行 each の idiom になるとすれば、「いっぺん配列を作って」と
か「帰ってきた配列で」というあたりは考えなくなると思いますし。まぁ、
idiom といえるほどたくさん使われるかどうかは問題ですが。

> と、するとやはりちゃんと平行 each を作ってしまったらどうかなあ。こんな
> 感じで

思考を節約するには、ボキャブラリを増やさずに Array#zip_each かなぁ。
zip.each と同じなんだけど並行 each によって無限な Enumerable でも動く
という感じで。
-- 
[田中 哲][たなか あきら][Tanaka Akira]
「ふえろ! わかめちゃん作戦です$(C⊇」(Little Worker, 桂遊生丸)