From: Yusuke ENDOH Date: 2009-05-15T01:11:44+09:00 Subject: [ruby-dev:38452] Re: Enumerable#gather_each 遠藤です。 gather は基本的に賛成なんですが、nil の特別扱いがちょっと 気持ち悪いです。アドホックというか、シンプルな名前に反して 機能が詰め込まれすぎている、という印象です。 そういう点で、 2009/05/14 11:14 Tanaka Akira : > Python のように、each のブロックの第一引数に渡してもいいのか > もしれません。 > > enum.gather(init_state) {|elt,state| ... }.each {|category,ary| ... } このインターフェイスはとてもいいと思います。 enum.gather {|elt| ... }.select {|cat, ary| cat } と自然に分離できます。 捨てる部分まで ary を作るのが多少気になるかもしれませんが、 nil の特別扱いまでするメソッドは gather より長くて明確な メソッド名で別に用意した方がいいと思いました。 まとまりかけの議論を引っ掻き回すようで申し訳ありませんが、 一応意見でした。 > なお、Enumerable#group_by はすでにあるので、名前について真似 > できないのは残念なところです。 とても残念です。 でも chunk は (非ネイティブ的には) よさげに聞こえました。 -- Yusuke ENDOH