closures
Chema Cortes
pych3m4 en gmail.com
Lun Jul 23 14:42:55 CEST 2007
El 23/07/07, Carles Pina i Estany <carles en pina.cat> escribió:
> Aunque es un concepto que no me gusta mucho. Me imagino que algun dia
> veré un caso que me simplificará mucho la vida :-)
>
> Parece que con generadores, paso de argumentos, etc. casi siempre puedo
> hacer lo mismo...
En una entrevista a Yukihiro Matsumoto, el creador de ruby, reconocía
que las clausuras "verdaderas" no daban muchas más ventajas que si se
copiara internamente las variables, que si las había incluído en ruby
era por ser fiel a la cultura Lisp:
http://www.artima.com/intv/closures2.html (al final de la entrevista)
Te puedo asegurar que hay cierto abuso de las cláusulas. Si cuentas
con un lenguaje de programación orientado a objetos, lo lógico es
emplear la abstracción de datos para encapsular los datos junto con
las funciones que los procesan.
Y si crees que tiene que haber algo que sólo sea posible con
cláusulas, te aconsejo que te mires los "contextos" de ejecución de
python 2.5 y que te olvidarás de la cláusulas:
http://docs.python.org/whatsnew/pep-343.html
PD: ...pero si quieres ver otros mundos, lua tiene claúsulas de verdad
y se parece mucho a python. Las emplea en las corutinas; pero también
carece de otras alternativas como tiene python.
function make_counter(start)
return function (inc)
start=start+inc
return start
end
end
c=make_counter(0)
print(c(3))
print(c(2))
Más información sobre la lista de distribución Python-es