[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