On Thu, Jun 27, 2013 at 8:11 PM, Tab Atkins Jr. <[email protected]>wrote:

> On Thu, Jun 27, 2013 at 5:06 PM, Allen Wirfs-Brock
> <[email protected]> wrote:
> > On Jun 27, 2013, at 4:47 PM, Tab Atkins Jr. wrote:
> >> Has it been discussed yet to add an .update() method to Map and Set, a
> >> la Python, which take an iterable (yielding [key, value] for Map, and
> >> just value for Set) and add the iterable's entries to the Map/Set?
> >>
> >> It desugars easily:
> >>
> >> Map.prototype.update = function(iter) {
> >>  Map(iter).forEach((v,k)=>this.set(k,v));
> >> };
> >> Set.prototype.update = function(iter) {
> >>  Set(iter).forEach(v=>this.add(v));
> >> };
> >>
> >> I've used this kind of dict/set addition in Python plenty, and added
> >> the method to my Map polyfill that I use for some personal projects.
> >>
> >> Thoughts?
> >>
> >
> > for (let [k,v] of iter) myMap.set(k,v)
>
> Right, it's easy to write yourself, but it's a common enough operation
> that Python found it worthwhile to add, and I found it useful for my
> own purposes.
>

My gut reaction was the same as Allen's, but Ruby's Hash also has
update(other_hsh) (though it is the same as merge!)


>
> In particular, I like that it just returns the modified map/set, so
> it's easy to chain with, or to immediately return.
>

I was wondering about this while reading your OP, but you're not returning
anything in that "desugaring". Anyway, I agree with this reasoning.

Rick


> It's basically equivalent to dest.splice(-1, 0, ...source) for Arrays.
>  (Or concat, if you ignore the fact that it doesn't alter the
> destination.)
>
> ~TJ
> _______________________________________________
> es-discuss mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/es-discuss
>
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to