Function composition vs pipeline

Peter Jaszkowiak p.jaszkow at
Sat Feb 24 09:31:52 UTC 2018

I'd like to point out the partial application operator:

Sounds like the combination of pipeline + partial application would result
in what is essentially the same as function composition operator:

const h = ? |> f |> g;

Which results in `h` being the composition `g • f`.

On Feb 24, 2018 02:21, "Naveen Chawla" <naveen.chwl at> wrote:

That could be a problem for readability.
I agree with the rest of what you said.

On Sat, 24 Feb 2018 at 11:16 Viktor Kronvall <viktor.kronvall at>

> I don’t know the implications but I could easily imagine the pipeline
> proposal being extended to not taking any input on the left hand side and
> effectively represent composition in the opposite direction.
> For example:
> ```
> let h = |> f |> g
> h(2) //g(f(2))
> ```
> That said, the point holds for the proposal in its current state. Being
> able to compose functions
> leads to much more expressivity than if you have
> to call the pipeline (and collapse) where it is defined.
> 2018年2月24日(土) 14:32 Naveen Chawla <naveen.chwl at>:
>> The function composition operator composes function pipelines into
>> functions for later use and/or further composition. Those functions still
>> need to be called via the existing `()` syntax, so it doesn't offer a
>> different way of calling functions as such.
>> The function pipeline operator calls the function pipeline immediately,
>> so it is really only a different way of calling functions.
>> On Fri, 23 Feb 2018 at 12:37 Jordan Harband <ljharb at> wrote:
>>> How is either operator not "a different way of calling functions"?
>>> On Thu, Feb 22, 2018 at 8:34 PM, Naveen Chawla <naveen.chwl at>
>>> wrote:
>>>> I was just thinking about the relative merits and coexistence (or not)
>>>> of function composition operator and function pipeline operator features:
>>>> e.g.
>>>> function-composition
>>>> They can of course co-exist, but there is overlap only in the respect
>>>> that both allow function pipelines to be called from left to right (except
>>>> the input parameter in the case of the composition feature, which requires
>>>> existing bracket syntax to be used to call it). If one were to be chosen,
>>>> would say that a function composition operator adds a whole new dimension
>>>> of expressive power to the language, whereas a pipeline operator only
>>>> offers a different way of calling functions.
>>>> I was wondering about all of your thoughts about whether you'd prefer
>>>> only the pipeline operator, only the composition operator, or both, or
>>>> neither to be added to the language (these are pretty much all the
>>>> possibilities), and why.
>>>> _______________________________________________
>>>> es-discuss mailing list
>>>> es-discuss at
>>> _______________________________________________
>> es-discuss mailing list
>> es-discuss at
es-discuss mailing list
es-discuss at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the es-discuss mailing list