From: matz@... (Yukihiro Matsumoto) Date: 1998-06-29T11:51:12+09:00 Subject: [ruby-list:8579] Re: Enumerable#reverse まつもと ゆきひろです In message "[ruby-list:8571] Re: Enumerable#reverse" on 98/06/29, GOTO Kentaro writes: |ごとけんです |どうもです。 # が、どうしてこんな時間にまつもとさんが… いや,別件でちょっと気になることがあってダイアルアップでアク セスしたんです.ついで.^^;;; |>sortなどにくらべてreverseが特別にアレというような理由がある |>んでしょうか.私自身はshort cutとして妥協できる範囲内だと感 |>じているのですが. | |特別にアレというほどではないですが、sort や grep は、 |reverse からつなぐわけないし、たぶんよくある用法は、 |Array#each につなぐんじゃないかと思った次第です。 |それなら to_a.reverse.each の short cut を用意した |ほうが便利そうかなと。 そうかもしれませんね.ちなみにEnumerableにはありませんが, Arrayにはreverse_eachがあります. が,その後ちょっと考えてみるとやっぱり若干reverseは特殊です ね.というのも他のEnumerableのメソッドは,石塚さんの指摘通り, 要素数が有限であることを仮定しているものはありますが,要素に 順序が存在する事を仮定していないんです.あくまでもeachが返し た順序はたまたまその順序であったと.ところがreverseだけは 「eachが要素を与えた順番」に注目しているんですね. ごとけんさんが感じられた違和感はこの辺に由来するのではないで しょうか. Enumerableの他のメソッドのうち,条件を満たす「最初の」要素を 返す find はちょっとアヤしいですが,これは「条件を満たす任意 のひとつの要素」に読み換える事が出来ますし. で,どうしようか.reverseはなくすか…. まつもと ゆきひろ /:|)