Currificar
marcelino villarino aguiar
mvillarino en eresmas.com
Mie Oct 29 19:34:09 CET 2003
Antes de nada agradecer los enlaces a información remitidos por
C.Cortés.
Hasta donde he logrado comprender, en los ejemplos que estas ayudas
incluian, la currificación consiste en envolver una función, de la
cual no todos sus argumentos son conocidos, en otra.
Entonces, en principio para obtener el resultado de la primera función
debo:
a) Llamar a la segunda de estas funciones con los argumentos que por
ahora conozco.
b) Esta función devuelve otra, con los argumento por ahora conocidos.
c) Para obtener el resultado final, invoco este resultado intermedio
con todos los argumentos restantes. Python se encarga de unir estos
argumentos a los anteriores y llamar con esta lista de argumentos
(todos), a la función inicialmente deseada.
Disculpándome, pues no he probado el código: ¿Funcionará este esquema
si paso los diferentes argumentos en más de dos etapas?.
Una segunda cuestión:
Sea f(x,y,z) = x + x*y + z
entonces, f(2, 5, z) = 12 + z = g(z);
y g(z) queda definido como 12 + z.
¿Cómo puedo hacer en python para que, dada la anterior definición de
f, en caso de hacer g = f(2,5) obtener que g = lambda var: 12 + var ?
Igualmente, si g = f(2) entonces g = lambda var, iable: 2+ 2*var +
iable, y si h=g(5) entonces h = lambda var: 12 + var.
Más información sobre la lista de distribución Python-es