From: Shin-ichiro HARA Date: 2002-11-15T17:41:23+09:00 Subject: [ruby-dev:18804] Re: Enumerable#zip 原です。 >まつもと ゆきひろです >考え直してみてるのですが、現時点では > > * Array.zipのようなArrayやEnumerableのクラスメソッドは受け > 入れられない。無駄な表記が前面に出過ぎて冗長過ぎ 私(のまつもと)もほぼそう感じます。 > * 原さん、田中さんの推す [a,b].zip タイプもなんかイヤ。一 > 種のデータ構造とみなせるassoc, rassocとあくまでもテンポ > ラリな[a,b]の間の差が「イヤ」の原因だと思う。 これはちょっと違います。私(のまつもと、、、以下略)は、[a, b] という一つの内部構造を持ったオブジェクトなので、テンポラリなも のではないというのが前提として考えています。a, b を zip したい がために、敢えて [a, b] を作るというのではありません。元々 [a, b] が手元にあるとしています。だから、これは最初のまつもとさんの zip がほしいと思った動機とはまた別の話です。 > そういえば、str % [a,b] のようなのもほんとは結構イヤ。 同感です。 > * map_with_indexもなんかいまいち必要性が見えない。 > each_with_indexはわりと簡単に応用例が思いつくんだけど、 > map_with_indexの方はねえ。簡単に作れるわりに使えないメソッ > ドに対しては意欲が薄れます。 応用例は宿題にさせてください。 > * 例外を出すというのは美しく感じられますが、実際に使うとな > ると事前に長さチェックが必要になるわけで、結局使いにくい > ように思います。PythonのDictionaryが例外を出すんで使いに > くいのと近いかな。 これも同感で、例外を出すとしたら、 (1) [ary0, ary1].zip のように最初からサイズの不揃いが分かる時 (2) enum0.each_sync(obj1, obj2){} の場合で、イテレート最中にサイ ズが合わないと分かった時 がいいと思います。 >というわけで、生き残る案はsync_eachと(元々の)zipかな。 >sync_eachの方は「この名前でよいのか」という疑問がありますし >(個人的には好きな名前じゃない)、zipの方には最初からの懸念で >ある長いほうに合わせるのか短いほうに合わせるのかって点が未解 >決ですね。 sync_each という名前は私も好きではないです。(^^;