From: matz@... (Yukihiro Matsumoto) Date: 2000-10-14T23:45:34+09:00 Subject: [ruby-list:25449] Re: equal?ity of object by object type まつもと ゆきひろです In message "[ruby-list:25440] Re: equal?ity of object by object type" on 00/10/14, "UENO Kazuaki" writes: |1. リテラルは全てオブジェクトそのもの。すなわち: |> f1=10; f2=10; f1.equal?(f2) |true |> b1=9999999999999999; b2=9999999999999999; b1.equal?(b2) |true |> s1="abc"; s2="abc"; s1.equal?(s2) |true |# -fno-writable-strings ですね。 RubyではStringは変更できるのでこれは採用できませんね。 |2. リテラルは全てオブジェクトへの参照: |上記全てfalse Fixnumの実装からこれはちょっと難しいですね。いや、ぜんぶ違う ものとしてFixnum#equal?はいつもfalseを返すと言う手はあるかな。 # でもやっぱり不自然か。 |3. 数値は全てオブジェクトそのもの |> f1=10; f2=10; f1.equal?(f2) |true |> b1=9999999999999999; b2=9999999999999999; b1.equal?(b2) |true |> s1="abc"; s2="abc"; s1.equal?(s2) |false |> f3=f1.clone; f1.equal?(f3) |true |> b3=b1.clone; b1.equal?(b3) |true |> s3=s1.clone; s1.equal?(s3) |false |# Common Lisp的? Common Lispでは数値をeq(equal?相当)で比較した場合の結果は処 理形依存で不定です。とするとRubyと一緒と言えるかも。 まつもと ゆきひろ /:|)