Ejemplo de aplicación parcial de la ley.
Respuestas a la pregunta
Por aplicación parcial se entiende a la aplicación de una función, pero suministrando menos parámetros que los que esta requiere. El resultado de aplicar parcialmente una función es otra función que espera menos parámetros que la original, ya que puede realizar reemplazos en su definición por expresiones o valores concretos. La aplicación parcial es muy útil para componer funciones y para parametrizar funciones de Orden Superior.
Por ejemplo, las siguientes expresiones presentan aplicación parcial:
take 3
(+1)
max "hola"
Para visualizar mejor la transformación que ocurre al aplicar parcialmente una función pueden consultar el tipo de las funciones sin aplicar y parcialmente aplicadas usando :t en el editor de Haskell. Podemos realizar un análisis en función del tipo de las expresiones anteriores, cuantos más parámetros se aplican menor aridad (cantidad de parámetros) tiene la función resultante:
*Main> :t take
take :: Int -> [a] -> [a]
*Main> :t take 3
take 3 :: [a] -> [a]
*Main> :t (+)
(+) :: Num a => a -> a -> a
*Main> :t (+1)
(+1) :: Num a => a -> a
*Main> :t max
max :: Ord a => a -> a -> a
*Main> :t max "hola"
max "hola" :: [Char] -> [Char]
Explicación: