`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