I'd rather make the interval not equal to the array, at least with the 
message #=.  Probably that can't be done safely.  If that's the case, 
I'd say the best approach is to leave it "broken" but documented in 
terms of "some collections may compare 'reasonably', however, since 
equality in those cases is not well defined, then the rule a = b => a 
hash = b hash may be waived".  For example, sure, #(1 2 3) = (1 to: 3), 
however you can't do (1 to: 3) at: 2 put: 5.  And 1.0 may be equal to 1, 
but the numbers represent completely different things so even though the 
numeric value is the same, equality is ill defined, and so it's not 
necessary for the hashing rule to apply.

Nicolas Cellier wrote:
> http://bugs.squeak.org/view.php?id=3380
> http://bugs.squeak.org/view.php?id=3488
>
> 2009/10/24 Andrew P. Black <[email protected]>:
>   
>> The golden rule of hashing is (a = b) => (a hash = b hash).  Right?
>>
>> Look at this:
>>
>> (1 to: 10) species  --->  Array
>> #(1 2 3 4 5 6 7 8 9 10) species  --->  Array
>>
>> (1 to: 10) =  #(1 2 3 4 5 6 7 8 9 10)   --->  true
>>
>> However,
>>
>> (1 to: 10) hash = #(1 2 3 4 5 6 7 8 9 10) hash  --->  false.
>>
>> I believe that the last is a bug.
>>
>>        Andrew
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [email protected]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>>     
>
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>   

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to