[#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:38460] Re: Enumerable#gather_each

From: Yusuke ENDOH <mame@...>
Date: 2009-05-15 11:32:34 UTC
List: ruby-dev #38460
遠藤です。

2009/05/15 14:06 Tanaka Akira <akr@fsij.org>:
> たとえば、chkbuild のログで minitest がテストの順番をランダ
> ムに変えるところはソートしてから diff したいんですが、
> http://www.rubyist.net/~akr/chkbuild/debian/ruby-trunk/log/20081213T111000.txt.gz
> のように、テスト以外のところが非常に大きいこともあって、そう
> いうところは簡単に 1行ずつ出力していきたい、というケースがあ
> ります。


そういうケースはよくあるものなんでしょうか。
nil の方は気味が悪いものの需要はありそうだと思うんですが、
:_singleton はもっと不気味で、にも関わらず使いどころが
あまり思いつきません。

状態を持たせると言っても、ひどく複雑にはなっていませんし、
それほど発生しないケースならそのくらいしてもらってもいい
かな、と思いました。
個別の切り分け方に対応し始めたらキリがないというか。

ですが、


> [ruby-dev:38449] とかパッチの中の rdoc には書いてあるんです
> が、現在、
> nil, false, :_separator が削除で、
> :_singleton が単独でのまとまりの指定です。


_ で始まるシンボルなら、いかにも特殊な意味を持っていそうな
オーラが出てるので、許せる気もしてきました。
いい加減ですみません。


> nil, false は目立つので、シンボルだけというのはひとつの案か
> もしれません。
>
> ただ、[ruby-dev:38394] のような期待に答えるなら、むしろ nil,
> false を削除とするのは正しいのかもしれない、とも思います。


そうですね。削除という意味でなく分類の意味で nil や false
を使うことはほとんどなさそうですし。


nil の特別扱いはどうするにしても、Python の API のように、
カテゴリをあわせて yield するところは真似して欲しいです。
でないと、gather 後にカテゴリを再計算するコードが量産され
そうです。こんな風に、category を二回呼びたくないです。

enum.gather {|x| category(x) }.each do |ary|
  case category(ary.first)
  ...
  end
end

-- 
Yusuke ENDOH <mame@tsg.ne.jp>

In This Thread