Paradigma de programación que describe los pasos necesarios para lograr un resultado.
Utiliza instrucciones secuenciales, bucles y cambios en el estado del programa. Es el enfoque más tradicional.
// Programación IMPERATIVA - describe CÓMO hacerlo // Ejemplo: Filtrar números pares y duplicarlos // Imperativo - paso a paso const numeros = [1, 2, 3, 4, 5]; const resultado: number[] = []; for (let i = 0; i < numeros.length; i++) { if (numeros[i] % 2 === 0) { resultado.push(numeros[i] * 2); } } // resultado: [4, 8] // Declarativo/Funcional - describe QUÉ quieres const resultadoDeclarativo = numeros .filter(n => n % 2 === 0) .map(n => n * 2); // resultado: [4, 8] // Imperativo: Control explícito del flujo let suma = 0; let i = 0; while (i < numeros.length) { suma += numeros[i]; i++; } // Declarativo: Expresar la intención const sumaDeclarativa = numeros.reduce((acc, n) => acc + n, 0); // Ambos enfoques son válidos // Imperativo: más control, más verboso // Declarativo: más conciso, más legible