Chuck's Academy

JavaScript Intermedio

Programación Funcional en JavaScript

La programación funcional es un paradigma de programación que se centra en el uso de funciones puras, inmutabilidad y composición de funciones. En JavaScript, es posible aplicar muchos conceptos de la programación funcional para mejorar la claridad y mantenibilidad del código.

Esta imagen muestra un diagrama de functional programmingEsta imagen muestra un diagrama de functional programming

Funciones Puras

Una función pura es una función que siempre devuelve el mismo resultado para los mismos argumentos y no tiene efectos secundarios. Las funciones puras son predecibles y fáciles de probar.

javascript
"En este ejemplo, la función 'add' es pura porque siempre devuelve el mismo resultado para los mismos argumentos sin modificar nada fuera de su ámbito."

Inmutabilidad

La inmutabilidad implica no cambiar los datos originales. En lugar de modificar un objeto o array, creamos uno nuevo. Esto es fundamental en la programación funcional, ya que evita errores asociados con el estado compartido.

javascript
"Aquí, 'numbers' es un array original, y 'newNumbers' es una copia con el valor 5 agregado, preservando la inmutabilidad."

Composición de Funciones

La composición de funciones es el proceso de combinar funciones pequeñas para construir funciones más complejas. Al componer funciones, podemos crear flujos de datos más claros y reutilizables.

javascript
"En este caso, 'addThenMultiply' combina las funciones 'add' y 'multiply' en una nueva función, que primero suma uno y luego multiplica el resultado."

Uso de map, filter y reduce

Los métodos map, filter y reduce son pilares de la programación funcional en JavaScript, permitiendo transformar, filtrar y acumular datos de manera declarativa.

map

map aplica una función a cada elemento de un array, devolviendo un nuevo array.

javascript
"Aquí, 'map' aplica la función que multiplica cada número por dos, creando un nuevo array llamado 'doubled'."

filter

filter devuelve un nuevo array que contiene solo los elementos que cumplen una condición.

javascript
"Usando 'filter', obtenemos un nuevo array con solo los números pares, llamado 'evenNumbers'."

reduce

reduce permite combinar todos los elementos de un array en un solo valor, como una suma o un producto.

javascript
"En este ejemplo, 'reduce' acumula todos los valores de 'numbers' para obtener su suma, almacenada en 'sum'."

Evitar Efectos Secundarios

En la programación funcional, evitamos los efectos secundarios, lo que significa no modificar valores fuera del ámbito de la función. Esto mantiene el código predecible y facilita la depuración.

javascript
"En este código, 'increment' devuelve un valor calculado sin modificar 'count', evitando efectos secundarios."

Currificación

La currificación es el proceso de transformar una función que toma varios argumentos en una serie de funciones que toman un solo argumento. Esto facilita la reutilización y composición de funciones.

javascript
"Aquí, 'add' es una función currificada que toma un argumento y devuelve otra función que suma ese valor. 'addFive' suma cinco al valor que se le pase."

Conclusión

La programación funcional en JavaScript permite escribir código más claro, modular y sin efectos secundarios. Aplicando principios como funciones puras, inmutabilidad y composición, es posible construir aplicaciones más mantenibles y robustas.


Pregúntame lo que sea