On Thu, Dec 12, 2013 at 9:40 AM, Brendan Eich <[email protected]> wrote:

> Kevin Smith wrote:
>
>> My thoughts:
>>
>> Again, generators are not a good fit for arrows - generators define
>> sequences, not mappings.
>>
>
> Yep.
>
>
>  Secondly, we should be conservative in our usage of arrow-like operators
>> - we only have so many decent looking things left!
>>
>
> What's more, ~ has nothing to do with generators, which use * (function*,
> yield*). Incoherent grawlix is no-go.
>
>
>  Third, looking at your third case (and removing unnecessary parens):
>>
>>     var async = (a, b) ~> await a + await b;
>>
>> It's completely obvious to the reader (by virtue of the await
>> expressions) that we are looking at an async function.  Having a different
>> operator here offers neither the reader nor the parser any real help.  It
>> just makes the language more grawlixy and less DWIM.
>>
>
> The issue with 'await' is: apart from sequence vs. mapping, given that
> arrows have a limited Tennent's Correspondence Principle for not only
> |this| and |super|, is it confusing to have |arguments|, |yield|, and
> |await| not mean outer "bindings", vs. inner?


No.


>  This line of reasoning only applies to async arrows, and not to async
>> function declarations, expressions, or methods.  Again, arrows are by
>> nature syntax-light and tolerate a higher degree of "inference" than other
>> forms.
>>
>> My point is that we should reserve "await" within arrows to preserve
>> these design options down the road.  It can always be unreserved later.
>>
>
> I think you have a point, whether we make |await| work or ban it to avoid
> partial-TCP confusion.
>

I'll continue to point out that the confusion is largely a product of
language lawyering, not real-world expectations of JS behavior. Banning
await here is only a solution if you're also not going to ban an async
descriptor on the arrow expression. THAT is the mistake.
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to