Informática (2017-18)

Funciones de orden superior

Las funciones de orden superior son todas aquellas que reciben como argumento una función y/o devuelven como resultado una función, algunas de ellas son:

Funciones para operar sobre listas

map
Evalúa una función sobre todos los elementos de una lista y devuelve la lista de los resultados
filter
Selecciona todos los elementos de una lista que cumplen una propiedad
all
Comprueba que todos los elementos de una lista cumplen una propiedad
any
Comprueba que algún elemento de una lista cumple una propiedad
takeWhile
Selecciona elementos de una lista mientras que cumplan una propiedad, hasta (sin incluir) el primero que no la cumpla
dropWhile
Elimina elementos de una lista mientras que cumplan una propiedad, hasta (sin incluir) el primero que no la cumpla
zipWith
Empareja los elementos de dos listas y evalúa una función sobre cada pareja, devuelve la lista de los resultados

Operaciones con funciones

(.)
Devuelve la función resultado de componer dos funciones

Patrones de definición

foldr
Patrón de definición recursiva sin acumulador sobre listas
  • foldr (+) 0 es equivalente a la función sum
  • foldr (*) 1 es equivalente a la función product
  • foldr (&&) True es equivalente a la función and
  • foldr (||) False es equivalente a la función or
  • foldr (++) [] es equivalente a la función concat
  • foldr (\ x r -> 1+r) 0 es equivalente a la función length
  • foldr (\ x r -> r++[x]) [] es equivalente a la función reverse
  • foldr (\ x r -> (f x):r) [] es equivalente a la función map f
  • foldr (\ x r -> if p x then x:r else r) [] es equivalente a la función filter p
foldl
Patrón de definición recursiva con acumulador sobre listas