yield syntax (diverging from: How would shallow generators compose with lambda?)

Neil Mix nmix at pandora.com
Mon May 18 11:53:12 PDT 2009

> Nothing prevents you from writing yield(E) of course -- but you're  
> arguing that foo(a = yield(b), c) should be enough, no extra parens  
> required -- no foo(a = (yield(b)), c). Right?

Yes that's correct.

>> Pros for yield(E):
>> - backward compatible
> But for this to be true, we would need to use the direct-eval  
> detection hack I mentioned previously.

On the plus side, this would allow for feature detection of generator  
support, right?  (Is there any other way to detect generator support?)

>> - easier to read (to my eye)
>> - it "feels" more correct to me in context of the when-using-send- 
>> value rule
> These are subjective enough there's no point in arguing. I hear ya.

Yes, one man's opinion and experience.  If others chimed in claiming  
the opposite experience, obviously my argument would be moot.  But I  
hope I'm providing a decent "average hacker" POV for you.

>> Pros for (yield E):
>> - consistent with python
>> - doesn't present any is-it-a-function? ambiguities
> These are more objective (no look & feel ;-). There is a borrowing  
> from Python. There isn't a function call going on.

Agreed.  If look-and-feel weren't factors, I wouldn't have brought it  
up.  ;)

More information about the es-discuss mailing list