From: "NARUSE, Yui" Date: 2009-05-10T11:42:46+09:00 Subject: [ruby-dev:38411] Re: Enumerable#gather_each 成瀬です。 Tanaka Akira wrote: > なお、私としてはこれを勧めているわけではなくて、ユーザがそう > いう状態遷移を考えなくて済むというのが良いと思っています。 > つまり、専用のメソッを作るほうが、状態を考えなくていいので良 > いと思います。 なるほど、ユースケースごとに専用メソッドを用意する方針ですか。 そうすると確かに問題はどのようなユースケースについて、 どんな名前のメソッドを用意するかだけなわけですね。 >>  上記のインターフェースだと使用例のように区切りを渡さないことも >> できますし、 yield を追加の前にするか後にするかも自由です。また、 >> status/status= を提供することで状態遷移を扱うことも支援できます。 > > gather_each でも、要素を結果から除去する指定は出来てもいいか > な、という気はします。そのための値を分類結果に定義しておけば > 可能で、nil をその意味にするか、あるいは :delete あたりにす > るか、なにがいいかな。 Array#compactとか、昔のArray#[]=nilとかを考えるとnilが自然な気もしますが、 それこそ両方用意した方がいいんじゃないですかね、特定のを除外するのとしないのを。 > 私は、gather_each とあともうひとつ ChangeLog みたいなものを > 処理するものがあると、かなりの範囲の用途を扱えるのではないか、 > と考えています。その推測が正しければ専用のメソッドのほうが便 > 利でしょう。 まとめると、必要なのは * 引数であるprocの戻り値ごとにまとめる基本メソッド * 一部を捨てるメソッド * 特定の要素の直前で分けるメソッド * 特定の要素の直後で分けるメソッド あたりなのでしょうか -- NARUSE, Yui