AFAIK there is only one style for closure, similar to one style for
square.
There are quite a lot languages implementing closures, and quite a lot try
to imitate them, including C with non-standard extension (without using
those imitations I cannot say if they are good enough).
http://en.wikipedia.org/wiki/Closure_(computer_science)
Wrt lambdas, I really like blocks from Ruby (which AFAIK stem from blocks
in Smalltalk, not sure if they call them "blocks").
http://lesscode.org/2005/07/12/ruby-colored-blocks-in-python/
http://railsguru.org/2010/03/learn-ruby-procs-blocks-lambda/
I mean, myself I am ok with lambdas (using them in languages where lambda
is welcomed and contributing citizen) but blocks in place of lambdas would
be nice to have in Python. Introduction of "with" construct was good IMHO,
but if one likes coding style relying on passing anonymous pieces of code
then Python might not be good choice for this.
On the other hand, one can argue that using anonymous code too much is not
the best style. I am not sure if extensive use of blocks/lambdas really
helps, or if it contributes to "clever" hacks and a source of maintainance
pain. So, perhaps it is good to have it in a few different ways -
like, Ruby, Python and CL - and experiment with them all.
In other words, rather than talking about making Python more like some
other language(s) I think it is much better to learn those other
language(s). If you'd like to try "unlimited" lambda, you might want to
play with Racket, a Scheme superset. Or any other Scheme - it's simple
enough to start coding after a day or two of learning (I mean Fibonaccis
and Erastotenes sieves, not implementing database or web server).
Myself, I would rather have blocks/lambdas and not need them rather than
the other way, but that's just me.
Regards,
Tomasz Rola
--
** A C programmer asked whether computer had Buddha's nature. **
** As the answer, master did "rm -rif" on the programmer's home **
** directory. And then the C programmer became enlightened... **
** **
** Tomasz Rola mailto:
tomas...@bigfoot.com **