[Python-ideas] "given" vs ":=" in list comprehensions

Nick Coghlan ncoghlan at gmail.com
Mon May 14 09:19:57 EDT 2018

On 14 May 2018 at 08:24, Ed Kellett <e+python-ideas at kellett.im> wrote:

> On 2018-05-14 05:02, Nick Coghlan wrote:
> > The same grammar adjustment that I believe will allow "given" to be used
> as
> > both a postfix keyword and as a regular name would also work for "where".
> > However, "where" still has the problem of semantically conflicting with
> > SQL's use of it to introduce a filter clause, whereas Hypothesis uses
> > "given" to bind names to values (just a little more indirectly than would
> > be the case for assignment expressions)
> I suspect that SQL is not high on the list of languages people might
> confuse with Python.

If we used "where" as a name binding keyword, ORM docs like
http://docs.sqlalchemy.org/en/latest/orm/query.html, and
https://docs.djangoproject.com/en/2.0/topics/db/queries/ would need to be
modified to explain that "SQL WHERE" and "Python where" do very different

It's better to just avoid the potential for that problem entirely (either
by using a symbolic notation, or by using a different keyword)

> FWIW, as I'm sure will have been mentioned, Haskell
> uses "where", and people seem to manage fine with it.

Unfortunately, Haskell's adoption numbers and reputation as a difficult to
learn language don't back up that assumption (I doubt that outcome has
anything to do with their use of "where", it just means "Haskell uses it
that way" can't be credited as evidence that something won't cause


Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20180514/0c11c5ed/attachment.html>

More information about the Python-ideas mailing list