The "Pipeline" Operator - Making multiple function calls look great

Kevin Smith zenparsing at
Tue Nov 10 17:52:14 UTC 2015

> - I don't like the requirement to use the keyword `this` to compose
> functions. JS already has many features to support the keyword `this`:
> prototypes, method invocations, function binding, arrow functions, and
> probably others. I prefer a feature that assists the other side of the
> spectrum.

Yep - a well documented critique.  It depends on your point of view, I
think.  If you view these things as "extension methods", then using `this`
makes more sense.

- The fact that there are new semantics to what looks like a normal
> function call (e.g. `->map(...)`) doesn't set well with me. You could argue
> that it's something to get used to. Even in that case, I would expect the
> first argument I give to `map` to stay the first argument.

This is a reasonable objection, I think.

With the pipeline operator, partial application is left to the developer.
> They can choose to use arrow functions, or to curry their functions. I
> think this is the best option since it keeps things simple (no new
> semantics), and remains readable – see the "Function with Multiple
> Arguments" section in the GitHub link

I agree that your proposal wins points for simplicity (both semantic and
syntactic), but having to create an arrow function to pass more than one
argument feels a bit awkward and seems to defeat some of the readability
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the es-discuss mailing list