[Python-Dev] thunks
Guido van Rossum
guido@python.org
Mon, 03 Feb 2003 11:53:50 -0500
I still don't have time to read this thread :-(, but I had a new idea
that I'd like to fly here.
If we want to support thunks that blend into the scope of their
environment as well as thunks that introduce a new local scope, here's
one possible way to do it:
Thunk blending in:
[<variable> =] <expression>:
<block>
Thunk introducing a new local scope:
[<variable> =] <expression> lambda:
<block>
(Never mind the ugly things I've said about lambda in the past. :-)
I'm confident that the parser can distinguish these, and I'm confident
that the scope blending can be implemented using nested-scope cells.
Adding formal parameters to the second case would go like this:
[<variable> =] <expression> lambda <arguments>:
<block>
One concern I have in both cases: I think there are use cases for
wanting more than one block. Glyph's example wants to define various
callbacks for a remote call, and this would need multiple blocks. I
think the syntax for this would have to use some kind of keyword-based
continuation, e.g.
[<variable> =] <expression> lambda:
<block>
and <expression> lambda:
<block>
...
Disclaimer: this is a half-baked idea.
--Guido van Rossum (home page: http://www.python.org/~guido/)