Map and Set are the bare collection necessities and let us avoid the hazards of 
using objects as maps. Beyond that, I would want to see a holistically designed 
collections API. Tackling equality seems important: How do value objects fit 
into the picture? Will there be a per-type protocol? Or an operator (or 
similar) that one extends?

With modules and classes in ES6, we only need someone willing and able to 
implement such an API as an external library. As far as I’m aware, no such 
libraries exist. Which is surprising – IIRC several such libraries have been 
written for Java.

Axel


On Nov 21, 2012, at 13:10 , Andreas Rossberg <[email protected]> wrote:

> On 20 November 2012 21:30, Tab Atkins Jr. <[email protected]> wrote:
>> On Tue, Nov 20, 2012 at 10:57 AM, Mark S. Miller <[email protected]> wrote:
>>> I think adding a MultiMap API to ES7 is a good idea. Neither Map nor
>>> MultiMap should be a subclass of the other, since neither is an LSP
>>> subtype of the other.
>> 
>> When properly designed, as long as you interact with it only through
>> Map methods, a MultiMap can be an LSP subtype of Map.
>> 
>> [...]
>> 
>> The tricky part is dealing with .size and the iterator methods.  You
>> need .size to reflect the number of keys, not pairs, to be consistent
>> with Map.  But then .size doesn't match the length of the iterators
>> returned by .items() or .values(), unless both of these are changed to
>> only return the first value by default.  (They can't return an array
>> of values, because that's not what Map does.)
> 
> If the multi map iterator returns the same key multiple times it
> already breaks the map contract. So you would need a separate
> iteration method for that. At that point, as Mark says, it is not
> clear what the benefit is.
> 
> The proper approach would be to identify a common super class that
> identifies the commonalities. You could try to come up with a
> hierarchy of concepts, like they did for C++0X before it got
> downsized. But lacking types that hardly seems useful for JavaScript.
> 
> /Andreas
> _______________________________________________
> es-discuss mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/es-discuss
> 

-- 
Dr. Axel Rauschmayer
[email protected]

home: rauschma.de
twitter: twitter.com/rauschma
blog: 2ality.com

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to