[#38371] Re: [ruby-cvs:30538] Ruby:r23320 (trunk): * lib/set.rb (SortedSet#add): Do not let an uncomparable object — "Yugui (Yuki Sonoda)" <yugui@...>
Yuguiです。
At Mon, 4 May 2009 23:44:22 +0900,
遠藤です。
At Fri, 8 May 2009 02:00:10 +0900,
[#38372] making install-sh more descriptive — "Yugui (Yuki Sonoda)" <yugui@...>
install-shが空になって久しい(r520)です。
[#38382] [Bug #1442] indentation check and coverage for toplevel do not work — Yusuke Endoh <redmine@...>
Bug #1442: indentation check and coverage for toplevel do not work
[#38390] [Bug:1.8] Tempfile and extended Enumerable — Tanaka Akira <akr@...>
1.8.8dev で、以下のように、Enumerable に each2 を定義し、
[#38392] Enumerable#gather_each — Tanaka Akira <akr@...>
ときに、複数行をまとめて扱いたいことがあります。
ujihisaと申します。
まつもと ゆきひろです
At Sun, 10 May 2009 06:00:08 +0900,
In article <E1M2t0u-0000Aa-Sd@x61.netlab.jp>,
まつもと ゆきひろです
In article <E1M4oSd-00005c-WB@x61.netlab.jp>,
In article <873ab3531u.fsf@fsij.org>,
まつもと ゆきひろです
At Sat, 9 May 2009 15:30:20 +0900,
In article <86r5yy2nrg.knu@iDaemons.org>,
At Sun, 10 May 2009 10:08:47 +0900,
In article <86ocu132gq.knu@iDaemons.org>,
At Sun, 10 May 2009 15:57:33 +0900,
In article <86my9l2tts.knu@iDaemons.org>,
Haskell の groupBy と Python の groupby が似ている、という話
遠藤です。
In article <e0b1e5700905140800y6d701c6fj731a59ffd83b9d79@mail.gmail.com>,
[#38423] longlife gc — Narihiro Nakamura <authornari@...>
nariと申します.
[#38446] [Bug:1.9] exact Time and inexact Time — Yusuke ENDOH <mame@...>
遠藤です。
In article <e0b1e5700905132145i32bed2f0y80faef19c119824f@mail.gmail.com>,
遠藤です。
[#38463] SQLiteライブラリ — "NARUSE, Yui" <naruse@...>
成瀬です。
[#38486] [Bug #1483] some commands installed without program-suffix — Kazuhiro NISHIYAMA <redmine@...>
Bug #1483: some commands installed without program-suffix
[#38493] [Feature:trunk] enhancement of Array#drop — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
[#38518] [Bug:1.9] Enumerator.new { }.take(1).inject(&:+) causes stack overflow — Yusuke ENDOH <mame@...>
遠藤です。
[#38524] [Bug #1503] -Kuをつけた時、/[#{s}]/n と Regexp.new("[#{s}]",nil,"n") で実行結果が異なる — sinnichi eguchi <redmine@...>
Bug #1503: -Kuをつけた時、/[#{s}]/n と Regexp.new("[#{s}]",nil,"n") で実行結果が異なる
[ruby-dev:38412] Re: Enumerable#gather_each
In article <4A063F07.7010304@airemix.jp>,
"NARUSE, Yui" <naruse@airemix.jp> writes:
> なるほど、ユースケースごとに専用メソッドを用意する方針ですか。
Enumerable の場合、あるメソッドでできないことがあっても他で
実現できないことはないので、なんでもできなければならないとい
う要求は小さいですね。
> そうすると確かに問題はどのようなユースケースについて、
> どんな名前のメソッドを用意するかだけなわけですね。
もちろん、少ない知識と記述でたくさんの用途を満たせるに越した
ことはないので、どのあたりを狙うかが問題になります。
> Array#compactとか、昔のArray#[]=nilとかを考えるとnilが自然な気もしますが、
> それこそ両方用意した方がいいんじゃないですかね、特定のを除外するのとしないのを。
:delete と :singleton とかかなぁ
svn log とかを処理すると区切りは消したくなるので、
% svn log enum.c|./ruby -rpp -e '
sep = "------------------------------------------------------------------------\n"
ARGF.gather {|l| l == sep }.each {|lines| pp lines }
'
["------------------------------------------------------------------------\n"]
["r22552 | nobu | 2009-02-22 23:23:33 +0900 (Sun, 22 Feb 2009) | 1 line\n",
"\n",
"stripped trailing spaces.\n"]
["------------------------------------------------------------------------\n"]
["r21678 | nobu | 2009-01-20 06:47:48 +0900 (Tue, 20 Jan 2009) | 3 lines\n",
"\n",
"* array.c (take_items), enum.c (enum_zip): tries to
convert to\n",
" array first. [ruby-core:21442]\n",
"\n"]
...
ここで
ARGF.gather {|l| l == sep ? : :delete : true }
にするとか。
> まとめると、必要なのは
> * 引数であるprocの戻り値ごとにまとめる基本メソッド
> * 一部を捨てるメソッド
> * 特定の要素の直前で分けるメソッド
> * 特定の要素の直後で分けるメソッド
> あたりなのでしょうか
どれが基本かどうかというのはとくに意識しなくていいんじゃない
ですかね。たぶん slice_by を使って gather を実現するのはでき
る気がします。
直後で分ける用途は充分にたくさんあるんですかねぇ。それは
よくわかりません。作ることになったときに名前に悩まないように
しておくのはいいかもしれませんが。直前を slice_before にして
おいて、必要になったときには slice_after を作るとか。
あと、専用メソッドを増やせば増やすほどいいというわけでもあり
ません。メソッドが増えるとどれが適切かユーザが選ばないといけ
ませんから。記述が繁雑にならないなら、ひとつのメソッドの機能
を増やすというのも選択肢になります。そうすれば、うまく動かな
かったときにメソッドを選ぶところからやり直すのでなく、ブロッ
クの中をいじるだけで修正していける可能性が増します。
--
[田中 哲][たなか あきら][Tanaka Akira]