[Python-ideas] Proposal for function expressions (original) (raw)
Terry Reedy tjreedy at udel.edu
Mon Jul 13 02:12:00 CEST 2009
- Previous message: [Python-ideas] Proposal for function expressions
- Next message: [Python-ideas] Proposal for function expressions
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Chris Perkins wrote:
I have a proposal for a language feature - a limited form of function- definition expression, similar (superficially) to Ruby's blocks.
The big problem with making "def" an expression is the indentation of the function body. You can't just embed an indented block of code into the middle of an expression. The solution I propose (inspired by Ruby) is to allow a block of code to be appended to the end of an expression in certain, limited circumstances. The block is simply syntactic sugar for a local anonymous function definition which is passed as an argument to the function call that it follows. First, a simple example to give the broad strokes: foo() do: BODY is equivalent to: def ANON(): BODY foo(ANON)
Add del anon and the equivalence is almost exact. Call all one-off functions '_' and there is no need to ever delete the name and you have
def (): body foo()
which is nearly identical to your proposed foo(&).
In any case, ideas similar to this have been proposed and discussed ad nausem and rejected. Guide decided for Python 3 to neiher delete function expressions, which he seriously considered, nor to expand them. Feel free to peruse the archives and PEPs.
Terry Jan Reedy
- Previous message: [Python-ideas] Proposal for function expressions
- Next message: [Python-ideas] Proposal for function expressions
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]