[#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:38389] Re: [ruby-cvs:30538] Ruby:r23320 (trunk): * lib/set.rb (SortedSet#add): Do not let an uncomparable object

From: "Akinori MUSHA" <knu@...>
Date: 2009-05-08 12:28:01 UTC
List: ruby-dev #38389
At Fri, 8 May 2009 09:48:18 +0900,
Yusuke ENDOH wrote:
> >  ひとまず respond_to?(:<=>) に変更しました。
>
> 対応ありがとうございます。動くようになりました。

 何よりです。

> >> 変更の理由が「(a<=>b) > 0 のような書き方はしたくな」いという
> >> だけなら、せめて 1.9 内は互換性を優先すべきではないでしょうか。
> >
> >  なんだか私の個人的なわがままみたいで残念な感じですが、一般に、
> > SortedSet を使った処理において要素同士の比較に < > 演算子を使え
> > ない(仮定できない)のは不自然で不便な感じはします。
>
> 互換性の話を無視すれば、私もそう思います。
> SortedSet[[1], ["foo"]] とか inspect したら例外になりますしね。
>
> # いや、一切型チェックしないで例外の方が Ruby らしいのかな?

 そこはバグの発見しやすさと性能のトレードオフですね。今回の
ケースでは、要素の追加で全順序集合が保たれるかまではチェック
していられないが、比較演算子の定義の有無程度なら妥協可能、と
いう落としどころでした。

 ところで、もし追加と参照を交互に繰り返すような使い方を主な
ターゲットとするならば逐次挿入ソートしていくという実装も有力で、
その場合は挿入時に実際の比較が行われるので追加のコストなしに
ある程度のチェックが行われることになります。

 いろんな都合が絡んでいておもしろいですね。

--
Akinori MUSHA / http://akinori.org/

In This Thread

Prev Next