<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Thu, May 24, 2018 at 12:04 PM Robert Vanden Eynde <<a href="mailto:robertve92@gmail.com">robertve92@gmail.com</a>> wrote:<br></div><div dir="ltr"><br></div><div dir="ltr">> This idea was mentioned (by me) at a time yes, but wasn't written in the document. </div><div dir="ltr"><br></div><div>Can you point me to a specific post?  There were so may that I must have missed that one.</div><div dir="ltr"><br></div><div dir="ltr">> I think one of the thing was that it would make the grammar non LL1 because when seeing the token "for" in a list comprehension it wouldn't know in advance if it's the loop or the assignment.</div><div><br></div><div>I don't see how that can be a problem.  From the grammar point of view, "for" in "for var = <expr>" may still be seen as introducing a "loop", but when "=" is seen in place of "in", the compiler will resize that the "loop" is one a single value and emit efficient code for it.  At the AST level,   "for var = <expr>"  will look exactly the same as  "for var in <expr>" only with an "=" instead of "in".</div><div><br></div><div>> And also, it might confuse people because 'for' is for iteration.</div><div><br></div><div>I think I addressed this in my previous post.  Yes, for people with a C/C++ background, "for" may be too strongly associated with loops, but in mathematical sense, it seems clear that "for var in a set" means iteration over a set, while "for var = expression" means binding to a single value.</div></div></div>