[#38392] Enumerable#gather_each — Tanaka Akira <akr@...>

ときに、複数行をまとめて扱いたいことがあります。

47 messages 2009/05/09
[#38394] Re: Enumerable#gather_each — ujihisa <ujihisa@...> 2009/05/09

ujihisaと申します。

[#38400] Re: Enumerable#gather_each — Yukihiro Matsumoto <matz@...> 2009/05/09

まつもと ゆきひろです

[#38399] Re: Enumerable#gather_each — "Akinori MUSHA" <knu@...> 2009/05/09

At Sat, 9 May 2009 15:30:20 +0900,

[#38405] Re: Enumerable#gather_each — Tanaka Akira <akr@...> 2009/05/10

In article <86r5yy2nrg.knu@iDaemons.org>,

[#38417] Re: Enumerable#gather_each — "Akinori MUSHA" <knu@...> 2009/05/10

At Sun, 10 May 2009 10:08:47 +0900,

[#38524] [Bug #1503] -Kuをつけた時、/[#{s}]/n と Regexp.new("[#{s}]",nil,"n") で実行結果が異なる — sinnichi eguchi <redmine@...>

Bug #1503: -Kuをつけた時、/[#{s}]/n と Regexp.new("[#{s}]",nil,"n") で実行結果が異なる

8 messages 2009/05/22

[ruby-dev:38411] Re: Enumerable#gather_each

From: "NARUSE, Yui" <naruse@...>
Date: 2009-05-10 02:42:46 UTC
List: ruby-dev #38411
成瀬です。

Tanaka Akira wrote:
> なお、私としてはこれを勧めているわけではなくて、ユーザがそう
> いう状態遷移を考えなくて済むというのが良いと思っています。
> つまり、専用のメソッを作るほうが、状態を考えなくていいので良
> いと思います。

なるほど、ユースケースごとに専用メソッドを用意する方針ですか。
そうすると確かに問題はどのようなユースケースについて、
どんな名前のメソッドを用意するかだけなわけですね。

>>  上記のインターフェースだと使用例のように区切りを渡さないことも
>> できますし、 yield を追加の前にするか後にするかも自由です。また、
>> status/status= を提供することで状態遷移を扱うことも支援できます。
> 
> gather_each でも、要素を結果から除去する指定は出来てもいいか
> な、という気はします。そのための値を分類結果に定義しておけば
> 可能で、nil をその意味にするか、あるいは :delete あたりにす
> るか、なにがいいかな。

Array#compactとか、昔のArray#[]=nilとかを考えるとnilが自然な気もしますが、
それこそ両方用意した方がいいんじゃないですかね、特定のを除外するのとしないのを。

> 私は、gather_each とあともうひとつ ChangeLog みたいなものを
> 処理するものがあると、かなりの範囲の用途を扱えるのではないか、
> と考えています。その推測が正しければ専用のメソッドのほうが便
> 利でしょう。

まとめると、必要なのは
* 引数であるprocの戻り値ごとにまとめる基本メソッド
* 一部を捨てるメソッド
* 特定の要素の直前で分けるメソッド
* 特定の要素の直後で分けるメソッド
あたりなのでしょうか

-- 
NARUSE, Yui  <naruse@airemix.jp>

In This Thread