[#19457] equality between "a" and Exception.new("a") — Tanaka Akira <akr@...17n.org>

ふと気がついたのですが、

39 messages 2003/02/02
[#19460] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/03

まつもと ゆきひろです

[#19473] Re: equality between "a" and Exception.new("a") — Tanaka Akira <akr@...17n.org> 2003/02/04

In article <1044245817.592933.31973.nullmailer@picachu.netlab.jp>,

[#19474] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/04

まつもと ゆきひろです

[#19475] Re: equality between "a" and Exception.new("a") — Tanaka Akira <akr@...17n.org> 2003/02/04

In article <1044329220.257740.28127.nullmailer@picachu.netlab.jp>,

[#19476] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/04

まつもと ゆきひろです

[#19477] Re: equality between "a" and Exception.new("a") — Tanaka Akira <akr@...17n.org> 2003/02/04

In article <1044331431.138035.28173.nullmailer@picachu.netlab.jp>,

[#19478] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/04

まつもと ゆきひろです

[#19479] Re: equality between "a" and Exception.new("a") — Tanaka Akira <akr@...17n.org> 2003/02/04

In article <1044332948.099873.28206.nullmailer@picachu.netlab.jp>,

[#19482] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/04

まつもと ゆきひろです

[#19486] Re: equality between "a" and Exception.new("a") — Tanaka Akira <akr@...17n.org> 2003/02/04

In article <1044338964.502066.28474.nullmailer@picachu.netlab.jp>,

[#19491] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/04

まつもと ゆきひろです

[#19493] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/04

まつもと ゆきひろです

[#19556] compare between String and Exception — Tanaka Akira <akr@...17n.org> 2003/02/12

さらに気が付いたのですが、

[#19514] [Oniguruma] Version 1.7.1 — "K.Kosako" <kosako@...>

ftp.ruby-lang.orgに、onigd20030207.tar.gzを置きました。

19 messages 2003/02/07

[#19548] [PATCH] file.c for (PR#389) and (PR#390) — nobu.nakada@...

なかだです。

20 messages 2003/02/11
[#19572] Re: [PATCH] file.c for (PR#389) and (PR#390) — pegacorn@... 2003/02/14

From: nobu.nakada@nifty.ne.jp

[#19648] Re: SEGV at search_method in eval.c (PR#400) — nobu.nakada@...

なかだです。

13 messages 2003/02/24

[ruby-dev:19476] Re: equality between "a" and Exception.new("a")

From: matz@... (Yukihiro Matsumoto)
Date: 2003-02-04 04:04:07 UTC
List: ruby-dev #19476
まつもと ゆきひろです

In message "[ruby-dev:19475] Re: equality between "a" and Exception.new("a")"
    on 03/02/04, Tanaka Akira <akr@m17n.org> writes:

|to_ary との関係はよくわかりませんが互換性を考慮するというのは理解可能
|です。動かない例が思い浮かばないのであまり実感がわきませんが。

  /Pattern/ =~ exception

とかいうプログラムがあるようです。

|> 結局、 == には交換則が期待されるので、右辺の自動変換をまった
|> く行わないか、逆にto_strなどを定義したクラスでは、==は変換先
|> のクラスも受け付けるというルールにするかいずれかであろうとい
|> う結論になりましたが、いくらなんでもto_strを定義することにそ
|> こまで要求するのはなんだろう、ということで、前者にしようと思
|> います。
|
|これはまったくもってそうなのですが、String が前者に変化したにもかかわ
|らず、URI は後者を仮定しているままなため、一貫性が崩れている、という話
|です。

え、URIは後者を仮定してるんですか。

私の書き方が悪かったかな。先程の文章では

  前者

  ==は右辺をto_strやto_aryで変換しない

  後者

  to_strやto_aryを定義したクラスは==の比較で失敗する前に自分
  自身をto_strやto_aryで変換してから比較してみる(というルー
  ルを今後設定する)

という意味だったんですけど。

URIが仮定して一貫性が崩れているものって、この場合なんですか。

|問題を起きなくすることは可能ですが、今、問題が起き始めたので直したほう
|がいいんではなかろうか、という話のつもりです。

ちょっと分かんなくなってきました。

問題は

  String#==やArray#==は右辺に対してto_strやto_aryを適用する
  ため、交換則が成立しない場合がある。

だと思っていました。で、上記のふたつの対応法のいずれかがあり、
私は前者が良いだろうと思った、というのが私に取っての現状なの
ですが、「今、問題が起きはじめたので直したほうが」という「問
題」と「直す」は私の考えているものとは違うものなのでしょうか。

                                まつもと ゆきひろ /:|)

In This Thread