Sobes.tech
Junior

¿Qué es la programación funcional?

sobes.tech AI

Respuesta de la IA

La programación funcional es un paradigma de programación basado en el uso de funciones como bloques constructores principales.

Conceptos clave:

  • Funciones puras: funciones que, con los mismos datos de entrada, siempre devuelven el mismo resultado y no tienen efectos secundarios (como modificar variables globales, imprimir en consola, etc.).
  • Inmutabilidad de datos: los datos no pueden ser modificados después de su creación. En lugar de modificar, se crea una nueva copia de los datos.
  • Funciones de primera clase: las funciones pueden ser asignadas a variables, pasadas como argumentos a otras funciones y devueltas como resultado de otras funciones.
  • Funciones de orden superior: funciones que aceptan otras funciones como argumentos o devuelven funciones.
  • Imperativo vs. Declarativo: La programación funcional es más declarativa, describiendo qué se debe hacer en lugar de cómo hacerlo.

Ventajas:

  • Mejor capacidad de prueba: Las funciones puras son fáciles de probar, ya que su salida depende únicamente de los datos de entrada.
  • Simplificación del paralelismo: La inmutabilidad de los datos elimina problemas de acceso concurrente y condiciones de carrera.
  • Previsibilidad del código: Las funciones puras hacen que el comportamiento del programa sea más predecible.
  • Mejor legibilidad: El código se vuelve más modular y comprensible.

Ejemplo de uso en JavaScript:

// Enfoque imperativo
let numbers = [1, 2, 3, 4, 5];
let doubledNumbers = [];

for (let i = 0; i < numbers.length; i++) {
  doubledNumbers.push(numbers[i] * 2);
}

// Enfoque funcional (usando funciones puras y funciones de orden superior map)
const double = (n) => n * 2; // Función pura

const numbers = [1, 2, 3, 4, 5];
const doubledNumbers = numbers.map(double); // Uso de map - función de orden superior

Se usa a menudo en combinación con enfoques reactivos y bibliotecas/frameworks como React, Redux y RxJS.