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

Crea una cuenta o inicia sesi贸n

隆Contin煤a aprendiendo sin ning煤n costo! 脷nete y comienza a potenciar tu carrera

Funciones puras

4/39
Recursos

Aportes 19

Preguntas 2

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

  • Funci贸n pura: determinista (resultado predecible). F谩cil de probar. Su resultado ser谩 siempre el mismo al recibir siempre los mismos par谩metros. No dependen del contexto, siempre generar谩 el mismo resultado y no generar谩 efectos secundarios, es decir no afectar谩 datos de entrada ni otros datos relativos a otros flujos de datos. No dependen del estado del sistema.

  • Funci贸n impura: no determinista. Dependen del estado del sistema. Dependen de su contexto. Pueden generar efectos secundarios, es decir, pueden afectar a otros flujos de datos o verse afectadas por otros flujos de datos subyacentes. No son predecibles.

  • Una funci贸n pura puede invocar a una funci贸n pura, pero no a una impura. Si una funci贸n pura invoca a una impura se transformar谩 entonces en una funci贸n impura ya que la naturaleza de la impura har谩 impredecible el resultado de la funci贸n pura, ya sea por resultado o por los efectos secundarios y contexto que impliquen la funci贸n pura.

Siempre es bueno explicar la teoria antes de entrar a la practica, Genial.

Ejemplo funci贸n pura vs impura:

// impura
var minimo = 18;
var checarEdad = function(edad) {
return edad >= minimo;
};
// pura
var checarEdad = function(edad) {
var minimo = 18;
return edad >= minimo;
};
En la impura, la var_mininmo es global, por lo tanto su estado puede cambiar(mutable), una misma entrada podr铆a dar resultados distintos, dependiendo de su estado.

Fuente:https://sg.com.mx/revista/49/pura-felicidad-funciones-puras

Recomiendo visitar este blog.

Profe Sinuh茅 Jaime Valencia que buen curso necesitamos mas cursos asi de bien explicados super me encanta este tema

Un funcion pura siempre genera el mismo resultado para el mismo parametro

Funciones puras e impuras

Las funciones pueden categorizarse seg煤n diferentes criterioss, permitiendo definir tipos de funciones.

Para que una funci贸n se considere pura debe cumplir con los siguientes criterios:

  • Dado una misma entrada, debe devolver siempre el mismo resultado, por ejemplo suma(1, 2) siempre ser谩 3.
  • Funciona en aislamiento: No depende del estado del estado actual del sistema (archivos, registros en la base de datos, d铆a del mes, etc).
  • Son deterministas: El resultado es predecible (esto facilita el testing).
  • No modifica el valor de los par谩metros (si se pas贸 x = 3 como par谩metro, luego de ejecutar la funci贸n x seguir谩 valiendo 3).
  • No genera efectos secundarios: No cambia el estado del sistema (no modifica archivos, base de datos ni estado de objetos en memoria).
  • Si llama a otras funciones, 茅stas tambi茅n deben ser puras.

Las funciones que no cumplan alguna de estas caracter铆sticas (que no sean puras) se las considerar谩 impuras.

las funciones pura son deterministica y tiene aislamiento

Excelente explicaci贸n instructor Sinuh茅, pensando en los proyectos que he realizado creo que solo he manejado funciones puras ya que pr谩cticamente todas han sido deterministas y estoy ansioso de ver una funci贸n impura en acci贸n para comprender mejor estas diferencias.

In Java, a pure function is a function that has the following two properties:

  • The return value of the function depends only on the input parameters passed to the function.

  • The execution of the function has no side effects.

Yo cuando veo una funcion en la que no puedo predecir su comportamiento:

Esto significa que es idempotente ls funcion pura?
o este termino no aplica para esteos casos?

y si X= -3, entonces daria -27, ya no seria pura la funci贸n, o si?

Funciones puras

Generan el mismo resultado para los mismos par谩metros, adem谩s no dependen del estado del sistemas, podemos predecir el resultado de la funci贸n pura es decir son deterministas.

FUNCIONES PURAS
-Retornan el mismo valor al pasarles el mismo par谩metro.
-No dependen del contexto.
-Son deterministas
-No generan efectos secundarios
-NO puede invocar una funcion impura.

Las funciones puras no tienen dependencias de funciones impuras ya que dejar铆an de ser puras , por lo que no tendr铆an resultados predecibles

Muy Buena Explicacion

Las funciones puras son aquellas cuyo comportamiento siempre sera predecible, no dependen de variables ajenas a ella y cuyo resultado bajo los mismos par谩metros deben ser siempre iguales, ejemplo de ello la funci贸n de suma o exponencial. Caso contrario las funciones impuras son aquellas cuyo comportamiento depende de factores o variables ajenas a ella y cuyo resultado no siempre es predecible (o no de manera simple).

Funciones Puras e Impuras鈥 Entendido 馃槂 gracias!