<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Mon, Oct 17, 2016 at 9:49 PM David Mertz <<a href="mailto:mertz@gnosis.cx">mertz@gnosis.cx</a>> wrote:</div><div dir="ltr">...</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg"><div class="gmail_extra gmail_msg"><div class="gmail_quote gmail_msg"><div class="gmail_msg">Moreover, this "magical flatten" operator will crash in bad ways that a regular flatten() will not.  I.e. this is fine (if strange):</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><div class="gmail_msg">>>> three_inf = (count(), count(), count())</div><div class="gmail_msg">>>> comp = (x for x in flatten(three_inf))</div></div><div class="gmail_msg">>>> next(comp)</div><div class="gmail_msg">0</div><div class="gmail_msg">>>> next(comp)</div><div class="gmail_msg">1 </div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">It's hard to see how that won't blow up under the new syntax (i.e. generally for all infinite sequences).</div><div class="gmail_msg"><br></div></div></div></div></blockquote><div>The proposed semantics replace the asterisk with a "yield from" in a generator, so it should work just fine.</div><div><br></div><div>Elazar</div></div></div>