[#697] ++[Re: dylan [Re: swap values(Re: call by reference)]] —
けいじゅ@SHLジャパンです.
1 message
1996/10/01
[#869] Append Member — Kouki Higuchi <luke@...>
Please let me be a participate.
1 message
1996/10/20
[#895] sleep eternaly on BOW(Re: ruby 0.99.2-961023 available) — Shin-ichiro Hara <sinara@...>
原です。
6 messages
1996/10/24
[#906] [REQ]Get Strings!<3> GETS, SUB — Shin-ichiro Hara <sinara@...>
原です。
5 messages
1996/10/27
[#907] [REQ]Get Strings!<4> SPLIT — Shin-ichiro Hara <sinara@...>
原です。
6 messages
1996/10/27
[#920] bug report(each) — keiju@... (Keiju ISHITSUKA)
けいじゅ@SHLジャパンです.
8 messages
1996/10/29
[#928] Re: hajimemashite — Itsuro Saito <saito@...>
斎藤@東大電子情報です.
9 messages
1996/10/29
[#938] ruby 0.99.3-961030 available — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです.
7 messages
1996/10/30
[#954] Rational — keiju@... (Keiju ISHITSUKA)
けいじゅ@SHLジャパンです.
23 messages
1996/10/30
[#955] Re: Rational
— matz@... (Yukihiro Matsumoto)
1996/10/30
まつもと ゆきひろです.
[#968] Re: Rational
—
1996/10/31
けいじゅ@SHLジャパンです.
[#970] Re: Rational
— matz@... (Yukihiro Matsumoto)
1996/10/31
まつもと ゆきひろです.
[#956] Re: Rational[coerce(Re: ruby 0.99.3-961030 available) ] — Shin-ichiro Hara <sinara@...>
原です。
4 messages
1996/10/30
[#965] ruby-mode — Yasuo OHBA <jammy@...>
大庭@SHLJapanです.
6 messages
1996/10/31
[ruby-list:986] Re: == and hash[Rational]
From:
Date:
1996-10-31 07:31:23 UTC
List:
ruby-list #986
けいじゅ@SHLジャパンです.
In [ruby-list :00980 ] the message: "[ruby-list:980] Re: == and
hash[Rational] ", on Oct/31 16:00(JST) matz@caelum.co.jp (Yukihiro
Matsumoto) writes:
>こういう本格的なものを開発しはじめてくださるといろいろと見落
>としが見つかりますね.ありがたいことです.
本格的ではないですが, 既存クラス的にruby内部に入り込んでいますね.
>さて,==が成立する場合hashが同じ値を持たねばならないという制
>限はHashクラスのためなのはご存知だと思います.で,問題は
>
> hash={}
> hash[1.0] = 2
>
>として格納したものが
>
> print hash[1]
>
>で取り出せる必要があるか,ということですね.現在は「取り出せ
>る必要は無い」として違うハッシュ値を与えています.ということ
>はドキュメントの記述の方に問題があると思います.
なるほど... それはそれで良いのですが:
まだ, 問題あるような気がします.
1.0 と1はハッシュ値が違っていましたが, ある整数とその浮動小数点数のハッ
シュ値(およびハッシュ表のサイズで法をとった値)は必ず異なっていると保証
できるのでしょうか?
そうでないならば,
foo = SomeInteger
foof = Float(SomeInteger)
hash[foo] = bar
hash[foof] --> bar
となってしまうような気がしますが??
>とはいえ,正確を期して,数値のように違うオブジェクトに対して
>便宜上 == を成立させているような場合にはhash値を等しくする必
>要は無いなどと細かく書くとかえってわかりにくくなるようにおも
>いますし.なにか分かりやすい表現はないものでしょうか.
ちなみに, Smalltalkでは
1.0 == 1 --> False
1 == 1.0 --> False
になっていますので, こういう問題は発生しません. (別にこうしろとはいっ
ていない)
>|質問:
>|Rationalには == が再定義され正しく動作しているのですが, Comparableから
>|継承しているのでしょうか???
>NumericがComparableをincludeしています.
ええ. それで, ==の実体はどこで定義しているのでしょうか??
>|1 == Rational(1, 1) --> TRUE
>|この場合, Ratinalのハッシュ値は1.hashと同じであるべきなのでしょうか??
>必要ないと思いますけどねえ.
上の問題がはっきりしてからですけども, 少なくとも
Rational(1,2).hash == Rational(1,2).hash
にする必要はありますよね.
__
..........................................石塚 圭樹@SHLジャパン(株)...
------------->アドレス変わりました!! e-mail: keiju@shljapan.co.jp <----