[Python-ideas] Where-statement (Proposal for function expressions)
greg.ewing at canterbury.ac.nz
Wed Jul 15 09:55:15 CEST 2009
Carl Johnson wrote:
> My suggestion for future would be language extenders is that they try
> to solve a broader problem than just the "how do I make callbacks more
> convenient" problem.
One such extension might be a "where" block. Applied
to the current problem:
* It's pretty much self-explanatory, as it builds on
the existing syntax for defining functions, and
"where" is used in a similar way in mathematics and
some existing programming languages.
* You get to give the function a meaningful name if
* It's not restricted to a single function argument:
def foo(f, g) where:
* It needn't be restricted to functions:
foo(x, y) where:
x = a * 42
y = b / 17
* Execution happens out of order, although that's an
inherent feature of the original proposal as well.
There are precedents in the language already, such
as list comprehensions and conditional expressions.
* Allowing arbitrary statements in the block could possibly
be considered detrimental to code readability. To mitigate
that, the block contents could perhaps be restricted to
binding constructs only.
More information about the Python-ideas