0% encontró este documento útil (0 votos)
5 vistas18 páginas

Java - Programacion Funcional

La programación funcional es un paradigma que se centra en qué se está haciendo en lugar de cómo se hace, y está disponible en varios lenguajes, incluyendo Java a partir de la versión 8. Se introducen conceptos como expresiones lambda, que son funciones anónimas, y streams, que permiten la ejecución de funciones de manera anidada sobre colecciones de datos. Ejemplos prácticos ilustran el uso de estas características en Java, facilitando operaciones como filtrado y conteo de elementos.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
5 vistas18 páginas

Java - Programacion Funcional

La programación funcional es un paradigma que se centra en qué se está haciendo en lugar de cómo se hace, y está disponible en varios lenguajes, incluyendo Java a partir de la versión 8. Se introducen conceptos como expresiones lambda, que son funciones anónimas, y streams, que permiten la ejecución de funciones de manera anidada sobre colecciones de datos. Ejemplos prácticos ilustran el uso de estas características en Java, facilitando operaciones como filtrado y conteo de elementos.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Java – Introducción a la programación

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

[Link]
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)

• Parte derecha de la flecha →



Expresión Lambda.

Devuelve lo que devuelve la operación.

Comportamiento depende de donde se use
(filtrar, ordenar)

Permite ejecutar código (ejemplo, hacer un
[Link])
Expresiones Lambda en ejemplo

• filter(num → num > 10)


• A la izquierda de →

Son los parámetros (en este caso 1, llamado num)
• A la derecha de →

Operación a realizar

Se ejecutara tantas veces como elementos hay
Streams (1)

• 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

• [Link]()

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)

• Filter: filtra elementos según expresión Lambda


• Expresión Lambda

A la izquierda de → 1 parámetro p

A la derecha de → solo elementos que no
empiecen por M
Explicación ejemplo (3)

• ForEach: se aplica a cada elemento



En Este caso se aplica a los elementos que quedan
tras aplicar filter()
• Expresión Lambda

A la izquierda de → 1 parámetro p

A la derecha de → Acción a ejecutar, imprimimos
el nombre del parámetro
Enlaces Interesantes (1)

• Enlaces Streams y Lambda



[Link]
l/stream/[Link]

[Link]
ava/procesamiento-streams-java-se-8-2763402-esa
.html
• Cheat Sheets

[Link]
heet

[Link]
[Link]
Enlaces Interesantes (2)

Web “Arquitectura Java”


• [Link]
y-predicates/
• [Link]
ncional-java-8-streams/
• [Link]
oreach-ii/
• [Link]
ncional-java-8-streams/

También podría gustarte