Inicio › Tecnología › Programación Funcional
La programación funcional es un paradigma qué estructura los programas como composición de funciones puras —aquellas qué, dado el mismo input, siempre devuelven el mismo output y no producen efectos secundarios sobre el estado externo— evitando la mutación de datos y favoreciendo estructuras inmutables. Lenguajes como Haskell o Elixir lo aplican de forma estricta, mientras qué JavaScript, Python o Java permiten adoptar sus técnicas de forma parcial mediante funciones de orden superior (map, filter, reduce), recursión en lugar de bucles con estado mutable, y composición de funciones pequeñas para construir lógica compleja.
Es escribir programas encadenando funciones qué no cambian nada por fuera de ellas mismas: reciben datos, devuelven un resultado nuevo, y no tocan variables externas. Eso hace más fácil predecir qué hará el código y probarlo, porque no depende de un estado oculto qué pueda cambiar.
En vez de recorrer una lista de pedidos con un bucle qué va acumulando un total en una variable mutable, un enfoque funcional encadena map() para calcular el importe de cada línea y reduce() para sumarlas, produciendo el resultado sin modificar la lista original, lo qué facilita testear cada paso por separado.
Una función cuyo resultado depende únicamente de sus argumentos de entrada, sin leer ni modificar variables externas, bases de datos o el sistema de archivos, lo qué la hace fácil de testear y de razonar sobre ella de forma aislada.
Porque los datos qué no cambian eliminan una fuente entera de errores relacionados con estado compartido y condiciones de carrera, especialmente relevante en programas concurrentes donde varios procesos acceden a los mismos datos.
Sí, es habitual en lenguajes multiparadigma como Scala, Kotlin o TypeScript, donde se usan objetos para modelar el dominio y técnicas funcionales para transformar colecciones de datos dentro de esos objetos.