Según tengo entendido, las funciones parciales son funciones que obtenemos al pasar menos parámetros a una función de lo esperado. Por ejemplo, si esto fuera directamente válido en Python:
>>> def add(x,y):
... return x+y
...
>>> new_function = add(1)
>>> new_function(2)
3
En el fragmento anterior, new_function
es una función parcial. Sin embargo, de acuerdo con Haskell Wiki , la definición de función parcial es
Una función parcial es una función que no está definida para todos los argumentos posibles del tipo especificado.
Entonces, mi pregunta es: ¿qué se entiende exactamente por "función parcial"?
partial
realiza una aplicación parcial , mientras que Haskell lo hace automáticamente. La entrada wiki se refiere a funciones parciales , que es un término de las matemáticas.
add 3 5
no es una aplicación de función única. Esto se aplica primero add
a 3 para obtener una nueva función, que luego se aplica a 5.
partial
método es una declaración directa de un método privado opcionalmente implementado en otra parte de la base de código del proyecto.
new_function = functools.partial(add, 1)