On Wed, Feb 28, 2018 at 4:52 PM, Robert Vanden Eynde <robertv...@gmail.com> wrote: > Hello Chris and Rob, > > did you compare your proposal tothe subject called "[Python-ideas] Temporary > variables in comprehensions" on this month list ?
Yes, I did; that's one of many threads on the subject, and is part of why I'm writing this up. One section that I have yet to write is "alternative syntax proposals", which is where I'd collect all of those together. > If you don't want to go through all the mails, I tried to summarize the > ideas in this mail : > https://mail.python.org/pipermail/python-ideas/2018-February/048987.html > > In a nutshell one of the proposed syntax was > > stuff = [(y, y) where y = f(x) for x in range(5)] > > Or with your choice of keyword, > > stuff = [(y, y) with y = f(x) for x in range(5)] > > Your proposal uses the *reverse* syntax : > > stuff = [(y, y) with f(x) as y for x in range (5)] > ... > I wish I could write a pep to summarize all the discussions (including > yours, my summary, including real world examples, including pro's and > con's), or should I do a gist on GitHub so that we can talk in a more "forum > like" manner where people can edit their answers and modify the document ? > This mailing is driving me a bit crazy. This is exactly why I am writing up a PEP. Ultimately, it should list every viable proposal (or group of similar proposals), with the arguments for and against. Contributions of actual paragraphs of text are VERY welcome; simply pointing out "hey, don't forget this one" is also welcome, but I then have to go and write something up, so it'll take a bit longer :) > As Rob pointed out, your syntax "(f(x) as y, y)" is really assymmetric and > "(y, y) with f(x) as y" or "(y, y) with y = f(x)" is probably prefered. > Moreover I agree with you the choice of "with" keyword could be confused > with the "with f(x) as x:" statement in context management, so maybe "with x > = f(x)" would cleary makes it different ? Or using a new keyword like "where > y = f(x)", "let y = f(x)" or probably better "given y = f(x)", "given" isn't > used in current librairies like numpy.where or sql alchemy "where". And also the standard library's tkinter.dnd.Icon, according to a quick 'git grep'; but that might be just an example, rather than actually being covered by backward-compatibility guarantees. I think "given" is the strongest contender of the three, but I'm just mentioning all three together. A new version of the PEP has been pushed, and should be live within a few minutes. https://www.python.org/dev/peps/pep-0572/ Whatever I've missed, do please let me know. This document should end up incorporating, or at least mentioning, all of the proposals you cited. ChrisA _______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/