¿Qué son las funciones puras?
Las funciones puras son un concepto fundamental en la programación de computadoras que se utilizan para escribir código predecible y mantenible.
En esta publicación, profundizaremos en el concepto de funciones puras y cómo se pueden usar para escribir un mejor código.
Entonces, ¿qué es una función pura?
una función pura es una función que tiene algunas características clave:
- Siempre devuelve la misma salida para un conjunto dado de entradas ( predecible ).
- No tiene efectos secundarios , es decir, no modifica ninguna variable fuera de su alcance.
- No se basa en ningún estado o dato externo.
Previsible:
La función pura se considera predecible porque siempre devuelve la misma salida para un conjunto dado de entradas.
Esto significa que si llama a una función pura con el mismo conjunto de entradas varias veces, siempre devolverá el mismo resultado.
Por ejemplo, considere la siguiente función pura:
function add(x, y) {
return x + y;
}
console.log(add(2, 3)); // 5
console.log(add(2, 3)); // 5
console.log(add(2, 3)); // 5
function add(x, y) {
return x + y + Math.random() * 10;
}
Efectos secundarios:
Los efectos secundarios son cambios en el estado de un programa o sistema causados por una función u operación.
Los efectos secundarios incluyen, pero no se limitan a:
- Modificando (mutando) una variable global:
let counter = 0;
function incrementCounter() {
counter++;
}
const user = {
name: 'Ali',
age: 30
};
function setUserName(newName) {
user.name = newName;
}
function saveDataToDatabase(data) {
// db.save(data)
}
async function getDataFromAPI() {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
return data;
}
function toggleVisibility(elementId) {
const element = document.getElementById(elementId);
if (element.style.display === 'none') {
element.style.display = 'block';
} else {
element.style.display = 'none';
}
}
function printGreeting(name) {
console.log(`Hello, ${name}!`);
}
function divide(x, y) {
if (y === 0) {
throw new Error('Cannot divide by zero');
}
return x / y;
}
no se basa en ningún estado o dato externo:
En este ejemplo, la incrementCounterfunción incrementa una variable global ( counter) y devuelve su nuevo valor. Esta función es impura, ya que se basa en el estado externo (la countervariable) y, por lo tanto, no siempre devuelve la misma salida para un conjunto dado de entradas.
let counter = 0;
function incrementCounter() {
counter++;
return counter;
}
Las funciones puras son un principio clave de la programación funcional y pueden ofrecer una serie de ventajas sobre las funciones impuras en ciertas situaciones. Estas son algunas de las principales ventajas de usar funciones puras:
- Previsibilidad y facilidad de comprensión: esto hace que sea más fácil razonar y probar el código, y también le permite reutilizar y componer fácilmente funciones puras en otras partes de su programa.
- Aislamiento y ausencia de efectos secundarios: las funciones puras no interactúan ni modifican ningún estado o dato externo y, por lo tanto, no tienen efectos secundarios. Esto los hace más fáciles de probar y depurar, ya que no introducen dependencias o comportamientos no deseados .
- Concurrencia y escalabilidad: las funciones puras no se basan en datos o estados externos y, por lo tanto, se pueden ejecutar simultáneamente o en paralelo sin preocuparse por las condiciones de carrera u otros problemas de concurrencia. Esto facilita la optimización y la escala del código que se basa en funciones puras.
- Componibilidad y programación declarativa : las funciones puras son un principio clave de la programación funcional, que es un paradigma de programación que se centra en la inmutabilidad, las funciones de primera clase y la composición. El uso de funciones puras puede ayudarlo a escribir código más declarativo y componible, y también puede facilitar el razonamiento y la depuración de su código.
Redux es una biblioteca de administración de estado popular para aplicaciones de JavaScript.
Las funciones puras son especialmente útiles porque se utilizan para implementar reductores, que son los encargados de actualizar el estado de la aplicación. Mediante el uso de funciones puras para actualizar el estado, Redux garantiza que las actualizaciones de estado sean predecibles y fáciles de entender, y también habilita funciones potentes como la depuración de viajes en el tiempo y la recarga en caliente.
Resumen:

![¿Qué es una lista vinculada, de todos modos? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































