Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Qué son funciones puras

5/23
Recursos

Las funciones puras siempre devuelven el mismo resultado cuando reciben los mismos parámetros. En cambio, otras funciones que dependen de factores externos (como el tiempo o una petición HTTP) no siempre pueden devolver el mismo resultado aunque reciban los mismos parámetros, incluso, pueden no necesitar recibir parámetros para ejecutarse correctamente.

Ejemplos de funciones puras:

const double = x => x*2
double(2) // siempre es 4
double(3) // siempre es 6

const isGreaterThan = (value, comparison) => value > comparison
isGreaterThan(5, 6) // siempre devuelve false
isGreaterThan(8, 6) // siempre devuelve true

Ejemplos de funciones que NO son puras:

const time = () => new Data().toLocalTimeString()
time() // siempre devuelve un resultado diferente

Aportes 17

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Las funciones puras no dependen de factores externos y son predecibles, trabajan con los argumentos que asignamos y constantes como números, o PI.

// función pura
function priceAfterTax(productPrice) {
  return (productPrice * 0.20) + productPrice;
}

En el caso de que nuestra función utilice variables externas, se considera impura, si otro desarrollador o proceso puede cambiar el valor de tax en el siguiente ejemplo, el valor de retorno no sería predecible.

// función impura
var tax = 20;

function calculateTax(productPrice) {
 return (productPrice * (tax/100)) + productPrice; 
}

Is a parameter and an argument one and the same? 🤔🤔🤔

Mi definición sobre función pura:

Función pura: Conjunto de pasos finitos que trabajan únicamente con los parámetros de entrada que recibe y siempre regresa el mismo resultado para dichos parámetros de entrada. No interactúa con variables globales.

Notas de la clase:

  • 👀 Podemos distinguir a las funciones puras porque siempre que pasemos los mismos argumentos vamos a recibir los mismos resultados.
  • ✈️ Las funciones puras NO pueden depender de factores o procedimientos externos como una consulta al tiempo o una API.

Entonces las funciones puras se basan mas que nada en las funciones usadas en matemáticas, mas específicamente en algebra… En donde un input te tiene que dar el mismo valor siempre, aunque claro que esto cambia cuando la funcion forma una curva, por lo tanto una función pura seria igual a una función lineal…
.

Conclusión

Función Pura (programación funcional) = Función lineal (algebra)

💜 Funciones puras

<h4>Apuntes</h4>
  • Las bases de las funciones puras es que:
    • Utilizara todos los parámetros
    • Si son los mismos parámetros serán los mismos resultados
    • Siempre Devuelve algo

Ejemplo

Función impura

const time = () => new Data().toLocalTimeString()
time() // siempre devuelve un resultado diferente

Función pura

const isGreaterThan = (value, comparison) => value > comparison
isGreaterThan(5, 6) // siempre devuelve false
isGreaterThan(8, 6) // siempre devuelve true

¿Qué son funciones puras?
Una función es pura cuando produce el mismo resultado
a partir del mismo argumento que pasemos por la función,
por lo que, también es una función cuyo resultado es
predecible.

ok

Yo relaciono el concepto de función pura con el de una prueba unitaria, en donde sabes exactamente cual será el resultado en un bloque de código en base a tus inputs.

la única función No-pura es con la fecha o el tiempo?

Las funciones puras son predecibles, como en el caso de redux , el reducer debe ser una función pura.

Una función es pura si produce el mismo resultado a partir del mismo argumento que se está pasando, también es predecible

Vale, una función pura es una función cuyo resultado lo podemos predecir y va a ser siempre el mismo