[#44725] Set[Set[1]]==Set[Set[1]] は偽? — "5.5" <5.5@...>

5.5 です。

22 messages 2008/03/04

[#44782] $stdin.rewind が exec した子プロセスに伝わらない? — SATOH Fumiyasu <fumiyas@...>

さとうふみやす @ OSS テクノロジです。

11 messages 2008/03/17
[#44783] Re: $stdin.rewind が exec した子プロセスに伝わらない? — Kazuhiro NISHIYAMA <zn@...> 2008/03/17

西山和広です。

[ruby-list:44739] Re: Set[Set[1]]==Set[Set[1]] は偽?

From: dai.gotou <dai.gotou@...>
Date: 2008-03-05 10:17:46 UTC
List: ruby-list #44739

----- 元のメッセージ -----
差出人: 5.5 <5.5@moji.gr.jp>
送信日時: 2008年3月4日 23:21
宛先: ruby mailing list <ruby-list@ruby-lang.org>
件名: [ruby-list:44725] Set[Set[1]]==Set[Set[1]] 	は偽?

5.5 です。

set ライブラリについての疑問です。

Set[Set[1]]==Set[Set[1]] は false を返します。
これは,Set が要素の同一性の判定に eql? を使っており,Set#eql?
はハッシュ値の一致を見ているからですよね。
でも真を返してほしいです。

まったく同じ話ですが,Set[Set[1], Set[1]] で作った集合は要素数
が 2 になります。
でもこの集合は Set[Set[1]] と同じであってほしいです。

集合の要素が集合だったとき,その同一性の判定を Set#== でやるわ
けにはいかないのでしょうか。

現状の仕様がこうなっているのは何か理由があるのでしょうが,では
Set[Set[1]] と Set[Set[1]] が同一となるような同一性判定はどの
ようにすればよいでしょうか。


-- 
5.5@moji.gr.jp



In This Thread

Prev Next