From: matz@... (Yukihiro Matsumoto) Date: 2002-11-08T03:25:51+09:00 Subject: [ruby-dev:18684] Re: Enumerable#zip まつもと ゆきひろです In message "[ruby-dev:18675] Re: Enumerable#zip" on 02/11/07, Shin-ichiro HARA writes: |念のためあげておくと、(f) Array.zip という方法もなくはないですね。 |Array.zip(a, b) と使う。 もちろんそれも考えたんですが、ここでの「Array」は役割があま りないわりにでしゃばって邪魔な印象が強いのであまり好きではあ りません。むしろ、zip単体でしょうが、いまさらKernelモジュー ルの関数的メソッドを増やすのもなあ。 |Range?なんか特殊なケースのような気が、、(^^; まあね。 |もしかすると、Enumerable#zip を作る前に、しばしば要望のある |Enumerable#map_with_index を作るべきかもしれませんね。そう |すると、zip は、a.map_with_index{|x, i| [x, b[i]]} で代用さ |せればいいし、サイズ不揃い問題は解消する。 map_with_indexに強く反対するわけではないですが、zipの代わり となるとやりたいことに対して直接的でないような気がします。 |(1)Enumerable#map_with_index を作る。 |(2)[a, b, c, ...].zip というタイプの Array#zip を作り、揃わないデ | ータ列に対して例外をあげる。 うーん、前者は直接的でないし、後者はなんちゅーか表現として好 きでないなあ。そろわないときには例外ってのは考慮の余地はある 案ですね。 |#zip って名前は適切なのかな? どうもPythonやMLなどの関数型言語では比較的よく見られる名前の ようです。