Introducción a la programación Funcional

1

¿Qué es la Programación Funcional?

Entendiendo las partes de la programación funcional

2

¿Qué es una función en Java?

3

Funciones como ciudadanos de primera clase

4

Funciones puras

5

Entendiendo los efectos secundarios

6

Funciones de orden mayor

7

Funciones lambda

8

Inmutabilidad

Functional Programming en Java

9

Repositorio del curso

10

Configuración del entorno de trabajo

11

Revisando el paquete java.util.function: Function

12

Revisando el paquete java.util.function: Predicate

13

Revisando el paquete java.util.function: Consumer y Supplier

14

Revisando el paquete java.util.function: Operators y BiFunction

15

Entendiendo dos jugadores clave: SAM y FunctionalInterface

16

Operador de Referencia

17

Analizando la inferencia de tipos

18

Comprendiendo la sintaxis de las funciones lambda

19

Usando metodos default en nuestras interfaces

20

Dándole nombre a un viejo amigo: Chaining

21

Entendiendo la composición de funciones

Optional y Streams: Datos mas interesantes

22

La clase Optional

23

Entendiendo los Streams

24

¿Qué son los Stream listeners?

25

Operaciones y Collectors

26

Streams de tipo específico y Paralelismo

27

Operaciones Terminales

28

Operaciones Intermedias

29

Collectors

Todo junto: Proyecto Job-search

30

job-search: Un proyecto para encontrar trabajo

31

Vista rápida a un proyecto de Gradle

32

Revisando las opciones para nuestro CLI

33

Librerías adicionales para nuestro proyecto

34

Entendiendo la API de jobs

35

Diseñando las Funciones Constructoras de nuestro Proyecto

36

Agregando validaciones de datos

37

Diseñando las funciones de transformacion de datos

38

Creando flujos extras de transformación de Datos

Conclusiones

39

Un repaso a lo aprendido

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Revisando el paquete java.util.function: Function

11/39
Recursos

Aportes 27

Preguntas 5

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

nunca habia trabajado con Function, esto abre un abanico de posibilidades

NO SE LES OLVIDE QUE DESPUES DE LA LLAVE DE CIERRE DE LA FUNCION PONER EL ;

Un método también puede ser una función, la diferencia es que las funciones también son tipos y al ser tipos se puede realizar operaciones con ellas:

  • involucrarse como variables

  • pasarlas como parámetros

  • recibirlas como retorno de ejecución

En mi caso, para ver la definición de Function en el IntelliJ IDEA no me aparece como Go To > Go To sino:
Go To > Declaration or Usages. (serán diferencias en versiones 🤷‍♀️).
![](

Shortcut psvm se genera public void main y sout system.out.println, muy cool

public class App {
	public static void main(String[] args) {
		Function<Integer,Integer> squareFunction= new Function<Integer,Integer>(){

			@Override
			public Integer apply(Integer t) {
				// TODO Auto-generated method stub
				return t*t;
			}
			
		};
		System.out.println(squareFunction.apply(2));
		
	}
	
}

Es imposible tratar de arrancar el código directamente del repositorio usando InteliJIdea, por el momento se puede trabajar con Eclipse, ¿Alguien pudo ejecutarlo directamente con InteliJIdea?

Genial el shortCut de psvm

Volví a mirar los vídeos de nuevo hasta este punto, hice apuntes a mano en un cuaderno y estuve usando Intellij y de a poco, voy masticando y entendiendo todo esto que es nuevo para mi. Sin dudas es otro estilo de programación, que requiere su tiempo para poder ser comprendido.

muy bien explicado

Creí que esto era de otro planeta pero es dentro de todo básico en Js

Estupenda clase instructor Sinuhé, sirve para comprender los fundamentos de funciones en Java.

Una función recibe un parametro y produce un resultado.
Cuando se declara, se debe indicar que tipo de parametro va a recibir y que tipo de resultado va retornar.

También puedes tipear main y darle enter para generar el método

La rama para esta clase es 04-funciones-en-java.

Casi estaba sorprendido con eso de functional programing en Java. Pues resulta que el famoso tipo de Function en Java es una Interfaz y lo que estamos haciendo son clases anonimas. Es un buen hack, no se me hubiera ocurrido XD.

shortcute: psvm = public static void main(String[] args) /// sout = System.out.println("");

¿Alguno sabe como obtener los {} de colores que tiene el profe por jerarquia? es muy util a la hora de debugear

Excelente explicación, lo que me pareció curioso es que se tiene que reescribir el método apply por cada nueva función que creemos.

Genial 😃

Genial, yo con solo escribir main me sale para escribir automaticamente todo el metodo main.

escribiendo los shortcut main o psvm te genera toda la estructura de un metodo main

Métodos son propios de las clases

Es similar a la creación de funciones expresivas en JavaScript

es posible pasar mas de un argumento con diferentes tipos de datos(int,double,etc…) ???

Como le hiciste para editar el nombre del metodo en todas las coincidencias?, Se que con shift + ALT puedes seleccionar varias lineas pero no vi que hicieras eso.

En eclipse tuve que instalar un decompilador y cambiar el jre por jdk