[#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:38504] Re: [Feature:trunk] enhancement of Array#drop
まつもと ゆきひろです
In message "Re: [ruby-dev:38500] Re: [Feature:trunk] enhancement of Array#drop"
on Wed, 20 May 2009 00:06:19 +0900, "U.Nakamura" <usa@garbagecollect.jp> writes:
|| drop_whileとは違うのですね。
|
|私が勘違いしてなければ、drop_whileは「ある条件に合致する要素
|より前の要素を全て削除する」ですから、私が欲しい物とは違うよ
|うです。
違います。drop_whileは「ある条件に合致する間、要素を先頭から
削除する」です。RDocから例題を引用すると
a = [1, 2, 3, 4, 5, 0]
a.drop_while {|i| i < 3 } # => [3, 4, 5, 0]
です。これは、うささんが最初に書いた
>Rubyでスクリプトを書いていて、配列から、ある条件に合致する先
>頭の要素のみを削除する、という処理を書きたい場面に出会ったこ
>とが何度かあります。
という表現には合致すると思いました。だからこそ、わざわざ
「drop_while とは違うのですね」と聞いたわけで。
ただ、なかださんが作ったパッチの挙動が
> [:a, :b, :a, :b].drop(1){|e| e == :b} #=> [:a, :a, :b]
> [:a, :b, :a, :b].drop(2){|e| e == :b} #=> [:a, :a]
だそうですから、これは「引数で指定した範囲内で条件を満たす要
素を削除する」メソッドになっています。うささんのほしいものは
こっちなんですか?
そういうメソッドが存在してはいけないとは言いませんが、だとし
ても、dropの拡張としては反対します。
* まずブロックを与えない場合と与えた場合で引数の意味がまっ
たく異なる(与えない場合は削除する要素数、与える場合は検
索する範囲)
* dropだけそのようなニーズが特に高いとはにわかに信じられな
い。やるなら、むしろ、範囲を制限するフィルタとなるような
Enumerator を返すメソッドを用意して、
ary.xxx(0,1).delete(elem)
のような対応をすべきではないか(xxxのところにはlensとか
filterとか適当に)。
結局、うささんの本当にほしいものがなんなのかよくわからないで
います。なかださんが作ったというパッチはうささんのほしいもの
の中途半端な一般化のようにもみえます。
|戻り値や対象未発見時の例外の有無などを無視すれば、私が欲しい
|物は ary.delete_at(ary.index(elem)) と書けます。
??
でも、これだとひとつしか取り除けませんが。いや、待てよ。「あ
る条件に合致する先頭の要素のみ」ってのは「先頭から条件を満た
す要素をすべて削除する」drop_whileとは違って、「先頭じゃなく
てもいいから条件を満たす最初のひとつだけ削除する」ってことで
すか?
もしかして、そういうこと? 気づくのが遅い?
それなら、ほしいものはむしろ「最初のひとつしか削除しない
delete」なんじゃないですか? delete_firstとかdelete_onceとか
なんとか。むしろdeleteがひとつ要素を削除して、delete_allが全
削除であるべきだったような気もしますが、ちょっと手遅れな感じ
がしますね。
いずれにしても中田パッチの導入は賛成しません。
まつもと ゆきひろ /:|)