[e-lang] [Caja] Equality of mappings in E
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
>> 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
>> 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