From: matz@... (Yukihiro Matsumoto) Date: 2000-01-12T15:16:48+09:00 Subject: [ruby-talk:01115] Re: Infinite loop Hi, In message "[ruby-talk:01113] Re: Infinite loop" on 00/01/12, ts writes: |Y> * a.hash == b.hash where a.eql?(b) is true. | | I've not understood, sorry. Do you mean | | 1) if a.eql?(b) then a.hash == b.hash | | or | | 2) if a.hash == b.hash then a.eql?(b) is true The former, i.e. forall a and b satisfy a.eql?(b), a.hash and b.hash should have same values. But if a.hash and b.hash have same hash values, a.eql?(b) may not be true. | This don't work for the first case with [1, 2, [1, 2]] and [1, 2, [1, 2]] Yes, you are right. I must think more deeply about how to get hash values for arrays. sigh. matz.