Java - Programacion Funcional
Java - Programacion Funcional
funcional
Expresiones lambda y streams
¿Que es la programación funcional?
• Paradigma de programación:
Imperativo: damos ordenes
Usado habitualmente
Declarativo
Declaramos que queremos
• Programación funcional
Importa que se esta haciendo y no en como
¿Donde esta disponible?
• Multitud de lenguajes
●
Javascript y frameworks modernos (jQuery, Vue)
●
Python
●
PHP
●
Java a partir de Java 8
• Ejemplos de la presentación disponibles en
●
https://github.com/sergarb1/JavaFuncional
Ejemplo Imperativo
Ejemplo Funcional
Expresiones Lambda (1)
• Expresiones Lambda
Compuesta por dos elementos, separados por una
flecha →
Es un función anónima
• Parte izquierda de la flecha →
Parámetros de entrada
Pueden ser varios
Expresiones Lambda (2)
• Streams
Un conjunto de funciones que se ejecutan de
forma anidada
No es una estructura de datos, pero puede
modificar datos
Streams (2)
• Funcionamiento
Se aplica una función a un Stream.
La siguiente función anidada se aplica al flujo
modificado por la función anterior.
Este proceso se repite para todas las funciones.
Streams en el ejemplo
• numeros.stream()
Genera el stream de la lista
• Filter( num → num > 10 )
Filtra dejando solo elementos mayores que 10
• count()
Filtra dejando un entero con el número de
elementos
Otro ejemplo Imperativo
Otro ejemplo funcional
Explicación ejemplo (1)
• Expresión lambda
A la izquierda de →
2 parámetros tipo Persona p1 y p2
A la derecha de →
Expresión. Obtiene atributo nombre y los
compara mediante compareTo
Explicación ejemplo (2)