On Jul 30, 2018, at 10:59 PM, Richard O'Keefe <raoknz@gmail.com> 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.
Takinga := 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 ANSISmalltalk standard requires. Ceteris paribus,two sequences are equivalent if and only if1. they are instance of the same class2. they have the same size3. corresponding elements are equivalent.It is fairly common for Smalltalk systems to distinguishbetween "these sequences are equivalent" and "thesesequences 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 <wkassens@libello.com> 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