Why do generator expressions return generators?

Brendan Eich brendan at mozilla.com
Fri Sep 6 11:56:58 PDT 2013


> Allen Wirfs-Brock <mailto:allen at wirfs-brock.com>
> September 6, 2013 11:48 AM
> On Sep 6, 2013, at 11:18 AM, Brendan Eich wrote:
>
>>> Allen Wirfs-Brock<mailto:allen at wirfs-brock.com>
>>> September 6, 2013 11:01 AM
>>>
>>> Almost as good, a arrow function with a generator comprehension as its expression body. For example, a factory for a generator with a lexical this binding:
>>>
>>> c =>  (for (p of c) if (p in this) this[p])
>>>
>>> not much different from a hypothetical generator arrow function and arguably better :
>>> c *=>  {for (p of c) if (p in this) yield this[p]}
>> There would be no explicit |yield| in the second example, though. (|yield| is an error in any arrow body.)
>
> why no |yield|?  Note that I wrote a { } body for the generator arrow function body, rather than an expression body and that generator functions use explicit |yield| in their bodies.

Sorry, brain-fart. You're right.

On that note, if we had generator arrows, why not allow yield in an 
expression-body.

/be


More information about the es-discuss mailing list