Talleres pasados

Introducción a la Programación Funcional con Javascript

Martes 4 de Octubre de 2022

¡Revive el taller online!

Resumen

La programación funcional es un paradigma de programación que se enfoca en el uso de funciones puras y la inmutabilidad de datos. A continuación, exploraremos algunos conceptos clave y ejemplos prácticos para entender mejor este estilo de programación utilizando Javascript.

¿Qué es un paradigma de programación?

Un paradigma de programación es una forma de clasificar los lenguajes de programación según su estilo de programación. Los dos principales paradigmas son:

  • Imperativo: Describe el cómo se debe realizar una tarea mediante instrucciones paso a paso.
    • Programación estructurada: Utiliza estructuras de control como bucles y condicionales.
    • Programación orientada a objetos: Define objetos que contienen datos y métodos.
  • Declarativo: Se centra en el qué se desea lograr, en lugar de cómo hacerlo.
    • SQL: Un ejemplo claro de programación declarativa utilizado para manejar bases de datos.

Dentro de la programación declarativa, encontramos la programación funcional.

Introducción a la Programación Funcional

La programación funcional es un paradigma donde las funciones son las unidades fundamentales de construcción. Se caracteriza por el uso de funciones puras y la inmutabilidad.

Funciones Puras

Una función pura es aquella que, dado el mismo conjunto de argumentos, siempre produce el mismo resultado sin causar efectos secundarios. Esto significa que no modifica el estado del programa ni interactúa con el mundo exterior (como entradas o salidas).

Ejemplo de Función Pura

function suma(a, b) {
    return a + b;
}

Esta función siempre devolverá el mismo resultado para los mismos valores de a y b.

Inmutabilidad

En programación funcional, los datos son inmutables, lo que significa que no se cambian después de ser creados. En lugar de modificar una estructura de datos, se crean nuevas versiones de esa estructura.

Ejemplo de Inmutabilidad

const original = [1, 2, 3];
const nuevo = original.map(num => num * 2); // [2, 4, 6]

En este ejemplo, la matriz original no se modifica; en su lugar, se crea una nueva matriz nuevo.

Funciones de Alto Orden

Las funciones de alto orden son aquellas que pueden recibir otras funciones como argumentos o devolverlas como resultados.

Ejemplo con map, filter y reduce

const numeros = [1, 2, 3, 4, 5];

// map: aplicar una función a cada elemento de la matriz
const dobles = numeros.map(num => num * 2); // [2, 4, 6, 8, 10]

// filter: filtrar elementos según una condición
const pares = numeros.filter(num => num % 2 === 0); // [2, 4]

// reduce: reducir la matriz a un solo valor
const suma = numeros.reduce((total, num) => total + num, 0); // 15

Recursividad

La recursividad es una técnica donde una función se llama a sí misma. Es útil en lugar de los bucles tradicionales (for, while).

Ejemplo de Función Recursiva

function factorial(n) {
    if (n === 0) {
        return 1;
    }
    return n * factorial(n - 1);
}

Esta función calcula el factorial de un número n.

Currying

El currying es una técnica en la que una función no recibe todos sus argumentos de una vez, sino que recibe uno y devuelve una nueva función que recibe el siguiente, y así sucesivamente.

Ejemplo de Currying

function suma(a) {
    return function(b) {
        return a + b;
    }
}

const suma5 = suma(5);
console.log(suma5(3)); // 8

En este ejemplo, suma(5) devuelve una nueva función que suma 5 a su argumento.

Conclusión

La programación funcional en Javascript ofrece un enfoque poderoso y elegante para escribir código. Al usar funciones puras, mantener la inmutabilidad y aprovechar técnicas como la recursividad y el currying, podemos escribir código más claro y menos propenso a errores. Experimenta con estos conceptos y observa cómo pueden mejorar tu desarrollo en Javascript.

Participantes

Ponente:

Startups Founder. Fullstack Engineer

También te puede interesar...

Jueves 25 de Julio
Cloud, desarrollo & DevOps
Jueves 18 de Julio
Cloud, desarrollo & DevOps
Jueves 11 de Julio
Cloud, desarrollo & DevOps
Jueves 27 de Junio
Cloud, desarrollo & DevOps
Entérate de nuestros próximos talleres
Suscríbete a nuestro newsletter para recibir nuestras novedades.
Talleres nuevos todas las semanas.
Recibe nuestras novedades para no perderte ninguno.