Paradigma de programación basado en funciones matemáticas puras.
Evita cambios de estado y efectos secundarios. Promueve un enfoque declarativo y funciones de orden superior.
// Principios de programación funcional // 1. Funciones puras - mismo input, mismo output, sin efectos secundarios const sumar = (a: number, b: number): number => a + b; // ✅ Pura: solo depende de sus argumentos let total = 0; const sumarImpura = (n: number): number => { total += n; // ❌ Efecto secundario return total; }; // 2. Inmutabilidad - no mutar datos const original = [1, 2, 3]; const nuevo = [...original, 4]; // ✅ Crear nuevo array // original.push(4); // ❌ Mutar // 3. Funciones de orden superior const numeros = [1, 2, 3, 4, 5]; const dobles = numeros.map(n => n * 2); const pares = numeros.filter(n => n % 2 === 0); const suma = numeros.reduce((acc, n) => acc + n, 0); // 4. Composición de funciones const pipe = (...fns) => (x) => fns.reduce((v, f) => f(v), x); const procesar = pipe( (str: string) => str.trim(), (str: string) => str.toLowerCase(), (str: string) => str.replace(/\s+/g, '-') ); procesar(' Hola Mundo '); // 'hola-mundo'