<div dir="ltr">Here's an interesting idea regarding yield **x:<div><br></div><div>Right now a function containing any yield returns a generator.  Therefore, it works like a generator expression, which is the lazy version of a list display.  lists can only contain elements x and unpackings *x.  Therefore, it would make sense to only have "yield x" and "yield *xs" (currently spelled "yield from xs")</div><div><br></div><div>If one day, there was a motivation to provide a lazy version of a dict display, then such a function would probably have "yield key: value" or "yield **d".   Such a lazy dictionary is the map stage of the famous mapreduce algorithm.  It might not make sense in single processor python, but it might in distributed Python.</div><div><br></div><div>Best,</div><div><br></div><div>Neil</div></div><br><div class="gmail_quote"><div dir="ltr">On Fri, Oct 14, 2016 at 3:34 AM Sjoerd Job Postmus <<a href="mailto:sjoerdjob@sjoerdjob.com">sjoerdjob@sjoerdjob.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Fri, Oct 14, 2016 at 07:06:12PM +1300, Greg Ewing wrote:<br class="gmail_msg">
> Sjoerd Job Postmus wrote:<br class="gmail_msg">
> >I think the suggested spelling (`*`) is the confusing part. If it were<br class="gmail_msg">
> >to be spelled `from ` instead, it would be less confusing.<br class="gmail_msg">
><br class="gmail_msg">
> Are you suggesting this spelling just for generator<br class="gmail_msg">
> comprehensions, or for list comprehensions as well?<br class="gmail_msg">
> What about dict comprehensions?<br class="gmail_msg">
<br class="gmail_msg">
For both generator, list and set comprehensions it makes sense, I think.<br class="gmail_msg">
For dict comprehensions: not so much. That in itself is already sign<br class="gmail_msg">
enough that probably the */** spelling would make more sense, while also<br class="gmail_msg">
allowing the `yield *foo` alternative to `yield from foo`. But what<br class="gmail_msg">
would be the meaning of `yield **foo`? Would that be `yield<br class="gmail_msg">
*foo.items()`? I have no idea.<br class="gmail_msg">
_______________________________________________<br class="gmail_msg">
Python-ideas mailing list<br class="gmail_msg">
<a href="mailto:Python-ideas@python.org" class="gmail_msg" target="_blank">Python-ideas@python.org</a><br class="gmail_msg">
<a href="https://mail.python.org/mailman/listinfo/python-ideas" rel="noreferrer" class="gmail_msg" target="_blank">https://mail.python.org/mailman/listinfo/python-ideas</a><br class="gmail_msg">
Code of Conduct: <a href="http://python.org/psf/codeofconduct/" rel="noreferrer" class="gmail_msg" target="_blank">http://python.org/psf/codeofconduct/</a><br class="gmail_msg">
<br class="gmail_msg">
--<br class="gmail_msg">
<br class="gmail_msg">
---<br class="gmail_msg">
You received this message because you are subscribed to a topic in the Google Groups "python-ideas" group.<br class="gmail_msg">
To unsubscribe from this topic, visit <a href="https://groups.google.com/d/topic/python-ideas/ROYNN7a5VAc/unsubscribe" rel="noreferrer" class="gmail_msg" target="_blank">https://groups.google.com/d/topic/python-ideas/ROYNN7a5VAc/unsubscribe</a>.<br class="gmail_msg">
To unsubscribe from this group and all its topics, send an email to <a href="mailto:python-ideas%2Bunsubscribe@googlegroups.com" class="gmail_msg" target="_blank">python-ideas+unsubscribe@googlegroups.com</a>.<br class="gmail_msg">
For more options, visit <a href="https://groups.google.com/d/optout" rel="noreferrer" class="gmail_msg" target="_blank">https://groups.google.com/d/optout</a>.<br class="gmail_msg">
</blockquote></div>