0% encontró este documento útil (0 votos)
3 vistas20 páginas

Programación Funcional en Java

La programación funcional en Java es un paradigma que se centra en la evaluación de funciones matemáticas, promoviendo la inmutabilidad y el uso de funciones puras. Incluye conceptos como expresiones lambda, interfaces funcionales y el paquete java.util.function, que facilitan la creación de código más legible y reutilizable. Las características clave de este enfoque son la inmutabilidad, funciones de primera clase y el uso de recursividad en lugar de bucles.

Cargado por

spyritchroma
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)
3 vistas20 páginas

Programación Funcional en Java

La programación funcional en Java es un paradigma que se centra en la evaluación de funciones matemáticas, promoviendo la inmutabilidad y el uso de funciones puras. Incluye conceptos como expresiones lambda, interfaces funcionales y el paquete java.util.function, que facilitan la creación de código más legible y reutilizable. Las características clave de este enfoque son la inmutabilidad, funciones de primera clase y el uso de recursividad en lugar de bucles.

Cargado por

spyritchroma
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

PROGRAMACIÓN

FUNCIONAL EN JAVA
P R O G R A M A C I Ó N 3
P R O F . M A N G O E D U A R D O
CONTENIDO

01 Programación funcional
02 Expresiones Lambda
03 Interfaces funcionales
04 Paquete Java Function
Programación Funcional
La programación funcional es un paradigma de programación
que trata la computación como la evaluación de funciones
matemáticas y evita el cambio de estado y los datos mutables.
Se basa en principios como la inmutabilidad, funciones puras y
la composición de funciones.

El desarrollo de software se trata de crear soluciones a


problemas pequeños y después componerlos para solucionar
un problema mayor. Es por eso que un modelo basado en
funciones y en composición de las mismas como únicas
herramientas para crear programas, nos brinda una forma muy
elocuente de crear software.
PRINCIPALES CARACTERISTICAS

Funciones puras: Dado un mismo input siempre


devolvemos el mismo output.
Inmutabilidad: Los datos no se modifican una
vez creados. En su lugar, se crean nuevos datos

Programación transformados.

Funcional Funciones de primera clase: Las funciones se


tratan como cualquier otro valor, pudiendo
pasarse como argumentos o devolverse como
resultados.
Recursividad: Se utiliza la recursión en lugar de
bucles para realizar operaciones repetitivas.
Programación Imperativa
Programación Funcional
Programación Imperativa y
Programación Funcional
Una expresión lambda es una forma de definir una
función anónima que puede pasarse como
argumento a un método o asignarse a una
variable. Son especialmente útiles en combinación

Expresiones con interfaces funcionales y flujos de datos


(Streams).

Lambda
Sintaxis básica
( Parametros ) -> Cuerpo;
( Parametros ) -> { Cuerpo }

Paréntesis ( ) : Contienen los parámetros de la función, es decir, lo que recibe


Operador -> : Separa los parámetros del cuerpo de la función.
Cuerpo { } : Contiene la lógica de la función (Si es una linea, se puede colocar sin
llaves y cerrar con ‘ ; ’).

Si el cuerpo de la expresión lambda es una sola línea y devuelve un valor, el return es


implícito, es decir, no es necesario escribirlo. Si el cuerpo esta entre llaves, es necesario
utilizar return de manera explícita. Si el parámetro es uno solo, tambien se pueden no
colocar los parentesis
( x ) -> {
x -> x * x ; == return x * x;
};
Una interfaz funcional es aquella que tiene un
único método abstracto. Se utilizan
principalmente para la programación funcional y
Interfaces permiten el uso de expresiones lambda y
referencias a métodos.
funcionales Características clave:
Solo puede tener un método abstracto.
Puede contener métodos default y static sin
perder su condición de funcional.
Se puede marcar con la anotación
@FunctionalInterface (opcional pero
recomendable).
Ejemplo Interfaz Funcional
Paquete [Link]
La librería [Link] es un paquete en Java que
contiene una serie de interfaces funcionales diseñadas para
facilitar la programación funcional mediante expresiones
lambda y referencias a métodos.

¿Por qué usar [Link]?

✔ Reduce la necesidad de definir interfaces funcionales


personalizadas.
✔ Mejora la legibilidad y reutilización del código.
✔ Compatible con APIs modernas como Streams y Optional.
Consumer<T>
Representa una operación que acepta un argumento de tipo T y no devuelve ningún
resultado.
Método abstracto:
void accept (T t)

Método Default:
default Consumer<T> andThen (@NotNull Consumer<? super T> after);
Supplier<T>
Representa un proveedor de resultados. No acepta ningún argumento y devuelve un
resultado de tipo T.

Método abstracto:
void get (T t)
Predicate <T>
Representa un predicado (función booleana) que acepta un argumento de tipo T y
devuelve un valor booleano.

Método abstracto:
boolean test (T t)

Métodos Default:
Predicate <T> and (Predicate<? extends T> other)
Predicate <T> negate ( )
Predicate <T> or (Predicate<? extends T> other)

Método Estatico:
Predicate <T> isEqual (Object targetRef)
Predicate <T>
Function <T , R>
Representa una función que acepta un argumento de tipo T y devuelve un resultado de
tipo R.

Método abstracto:
R apply (T t)

Métodos Default:
Function<T, V> andThen (Function<? super R, ? exends V> after)
Function<V,R> compose (Function<? super V, ? extends T> before)

Método Estatico:
Function<T,T> identity ()
Function <T , R>
PROGRAMACIÓN
FUNCIONAL EN JAVA
P R O G R A M A C I Ó N 3
P R O F . M A N G O E D U A R D O

Universidad Tecnológica Nacional de Mar del Plata

También podría gustarte