To what extent is it required by ANSI that objects be of the same class? Does 
Pharo treat a String and a Symbol as equivalent if they have the same 
characters?

James

> On Jul 30, 2018, at 10:59 PM, Richard O'Keefe <[email protected]> wrote:
> 
> I do not think that (1 to: 4) and #(1 2 3 4) should be equal.
> Let me put it a little more strongly:  it's a bug.
> Taking
>   a := 1 to: 4.
>   b := Array withAll: a.
>   c := OrderedCollection withAll: b.
> in the two other Smalltalk systems I just tried,
> no two of these are equal.  This is what the ANSI
> Smalltalk standard requires.  Ceteris paribus,
> two sequences are equivalent if and only if
> 1. they are instance of the same class
> 2. they have the same size
> 3. corresponding elements are equivalent.
> It is fairly common for Smalltalk systems to distinguish
> between "these sequences are equivalent" and "these
> sequences have the same elements in the same order",
> with no consensus on the name of the second method.
> One calls it #sameContentsAs:, Squeak #hasEqualElements:.
> 
> 
> On 31 July 2018 at 00:07, werner kassens <[email protected] 
> <mailto:[email protected]>> wrote:
> Hi,
> i guess i can subsume almost everything i know about hashes in one sentence:
> it is my understanding that two objects that are equal (obj1=obj2.
> -->true) have to have the same hash value (which is used for some
> collection types), whereas objects where obj1=obj2 returns false should
> have different hash values although it may happen that they have the
> same one.
> 
> now here things don't turn out exactly like that:
> (1 to:4) = #(1 2 3 4). "true"
> (1 to:4)hash = #(1 2 3 4)hash. "false"
> well ok, actually these results make - pfffh, in a certain way - sense
> to me, but i wonder what arguments the people in the know would use to
> defend that result, if i would have another opinion?
> werner
> 
> 
> 

Reply via email to