Semana 4

Notas de clase de la semana 4 de LPP.

Tema 2: Programación funcional

Veremos hoy


Ejemplo de uso de parámetros de tipo función para generalizar


Funciones que devuelven funciones


Ejemplo 1: función sumador


Ejemplo 2: función composicion


Ejemplo 3: función construye-segura


Funciones en estructuras de datos


Construcción de listas de funciones


Invocación a funciones de una lista


Ejemplo de función que trabaja con listas de funciones: aplica-funcs


Funciones de orden superior

Definición

Las funciones de orden superior (higher order functions en inglés) son funciones que reciben como parámetro otras funciones.


Función map

Consejo

La función map recibe una o más listas de n elementos y devuelve otra de n elementos transformados.


Función filter

(filter predicado lista) -> lista

Consejo

La función filter recibe una lista de n elementos y una condición y devuelve otra de de n o menos elementos originales filtrados por la condición.


Función exists? (implementada por nosotros)


Función for-all? (implementada por nosotros)


Función foldr

Función foldl

Consejo

Las funciones foldr o foldl reciben una lista de datos y devuelven un único resultado


Funciones recursivas con FOS y expresiones lambda

Combinación de funciones de orden superior

La combinación de funciones de orden superior y expresiones lamba para definir funciones recursivas sobre listas es una de las características más potentes de la programación funcional.


Función (suma-n n lista)

Composición de funciones de orden superior


Función (contienen-letra caracter lista-pal)