[e-lang] [Caja] Equality of mappings in E
David-Sarah Hopwood
david.hopwood at industrial-designers.co.uk
Wed Mar 11 06:02:19 EDT 2009
Kevin Reid wrote:
> On Mar 10, 2009, at 16:28, Mark S. Miller wrote:
>> On Tue, Mar 10, 2009 at 11:01 AM, David-Sarah Hopwood <david.hopwood at industrial-designers.co.uk
>>> wrote:
>> Mark S. Miller wrote:
>>> The corresponding cases in E without quasis:
>>>
>>> ? ["a" => 1, "b" => 2] == ["b" => 2, "a" => 1]
>>> # value: false
>>>
>>> They aren't equal because they are different.
>> I'm surprised. The ASTs of the left- and right-hand sides are
>> certainly
>> different, but this is testing whether the values are the same.
>> Why aren't the values the same?
>>
>> [Feel free to move this to e-lang.]
>>
>> Because their enumeration order is different.
>
> Note that if the maps are restricted to have string keys, then it is
> not impossible to canonicalize the enumeration order.
A possible design is to have both sorted and unsorted maps, where a
sorted map is constrained to have a total comparison on keys.
Sorted maps seem like a useful abstraction to me.
In that case there should probably be separate literal syntaxes for each
kind of map.
--
David-Sarah Hopwood ⚥
More information about the e-lang
mailing list