On Wed, Dec 5, 2012 at 10:43 PM, Rick Waldron <waldron.r...@gmail.com>wrote:
> > > > On Wed, Dec 5, 2012 at 3:26 PM, Domenic Denicola < > dome...@domenicdenicola.com> wrote: > >> Readability or library preference aside, I still think it's bizarre that >> >> map.set(key, val) >> >> is analogous to >> >> (dict[key] = val, dict) >> >> and not to >> >> dict[key] = val >> >> When I'm using a fluent library like jQuery or a configuration DSL like >> those in the npm packages surveyed, I can see the attraction of chaining. >> But when I am using a basic primitive of the language, I expect uniformity >> across primitives. >> > > This argument won't hold when the language doesn't make any such > "uniformity" promises, eg. > > array.push(val); // new length > array[ array.length - 1 ] = val; // val > That's just a bad analogy, because that's not what push does, since it has a variadic argument (admittedly, I don't think returning the length is useful anyway, but if it returned the value, should it return the first, last, or all of them?). And if it comes down to precedents in the language, even Array#forEach() returns undefined, contrary to popular libraries out there. Let's keep some consistency here. I agree with you, fear-driven design is bad. But don't you agree that if there's chaining, it's better done at language level rather than having all APIs be polluted by `this` returns? After all, the APIs can't guarantee a `this` return, since they might have something actually meaningful to return, otherwise we might as well just replace `undefined` with `this` as the default return value. We could introduce mutable primitives so that meaningful return values could be stored in arguments, kinda like in C, but instead of error values, we'd be returning `this`, heheheh. :) I'm curious, do you have any code examples of maps/sets that could be made clearer by chaining? Cheers, Jussi > > Rick > > > > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss > >
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss