From: Dave Thomas Date: 2000-01-11T10:23:08-06:00 Subject: [ruby-talk:01103] Re: Infinite loop Clemens Hintze writes: > > a1 = ["hello", 2, "world"] > a2 = ["world", 2, "hello"] > a1.hash == a2.hash # Broken! > a1.hash > 417265 > a2.hash > 416997 > > With old implementation, it was possible as both calculated hash > numbers was equal! Furthemore I consider this behavior as inconsistent > regarding the example you have shown above. THe reason it's not inconsistent is that Matz seeded the hash with self.id. In my example, I was careful to reuse the original object, so self never changed, and hence the hashes were the same. I strikes be as dangerous having two arrays that happen to have the same elements hash to the same value. I could see a lot of bugs arising if you then used these arrays as keys in a hash: salary[['david', 'thomas']] = 10000 salary[['thomas', 'david']] = 90000 Bad news! Dave