Is there a reason why it couldn't desugar to `f(x, y)` or `f(y, x)`? I
think it would be more performant with mostly the same benefits, and it
would work better with existing libraries, as a compliment to the function
bind proposal.

On Sat, Dec 12, 2015, 16:01 Gilbert B Garza <[email protected]> wrote:

> `x |> f(y)` desugars to `f(y)(x)`
>
> On Sat, Dec 12, 2015 at 2:55 PM, Isiah Meadows <[email protected]>
> wrote:
>
>> Question: does `x |> f(y)` desugar to `f(x, y)`, `f(y, x)`, or `f(y)(x)`?
>>
>> On Sat, Dec 12, 2015, 12:17 Gilbert B Garza <[email protected]>
>> wrote:
>>
>>> Ah yes, you are correct, it would need to be a special case as I wrote
>>> it. This version should work instead:
>>>
>>> ```js
>>> // Assume fs.readFile is an `async` function
>>> async function runTask () {
>>>   fs.readFile('./index.txt')
>>>     |> await
>>>     |> file => file
>>>        .split('\n')
>>>        .map(fs.readFile)
>>>     |> Promise.all
>>>     |> await
>>>     |> all => all.join("\n")
>>>     |> console.log
>>> }
>>> ```
>>>
>>> On Fri, Dec 11, 2015 at 7:08 PM, Kevin Smith <[email protected]>
>>> wrote:
>>>
>>>> ```js
>>>>> // Assume fs.readFile is an `async` function
>>>>> async function runTask () {
>>>>>   './index.txt'
>>>>>     |> await fs.readFile
>>>>>     |> file => file
>>>>>        .split('\n')
>>>>>        .map(fs.readFile)
>>>>>     |> await Promise.all
>>>>>     |> all => all.join("\n")
>>>>>     |> console.log
>>>>> }
>>>>> ```
>>>>>
>>>>
>>>> This doesn't work unless you special case the semantics of await
>>>> expressions.  With the current semantics, `await fs.readFile` will just
>>>> await `fs.readFile` not the result of applying it.
>>>>
>>>>
>>> _______________________________________________
>>> 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