1. Inicio
  2. Tecnología
  3. Programación funcional

Significado de Programación funcional

Sustantivo femenino. De programación y funcional, este del latín functio, «ejecución, cumplimiento».

La programación funcional es un paradigma que trata el cómputo como la evaluación de funciones matemáticas, sin modificar estados ni depender de variables que cambian durante la ejecución del programa.

Se opone a la programación imperativa, que organiza el código en instrucciones que modifican variables paso a paso, y comparte principios con las matemáticas del cálculo lambda.

Qué es la programación funcional

La programación funcional no es un lenguaje concreto, sino una manera de estructurar el código: en lugar de dar una secuencia de órdenes que cambian el estado de la memoria, describe el resultado deseado como la composición de funciones puras, cada una de las cuales, ante los mismos datos de entrada, siempre devuelve la misma salida.

Una función se considera pura cuando no depende de nada externo a sus argumentos ni provoca efectos secundarios, como escribir en un archivo o modificar una variable global. Esa propiedad hace que el resultado de un programa funcional sea más fácil de predecir y de probar, porque cada función puede analizarse de forma aislada.

No debe confundirse con la simple existencia de funciones dentro de un lenguaje: casi todos los lenguajes permiten definirlas, pero solo se habla de programación funcional cuando ese estilo evita deliberadamente la mutación de datos y trata a las funciones como valores que pueden pasarse como argumento o devolverse como resultado. La estudian la ciencia de la computación y, en su base matemática, la lógica y el cálculo lambda.

Origen de la palabra programación funcional

«Programación» procede del latín programma, y este del griego prógramma, «orden escrita»; «funcional» viene del latín functio, «cumplimiento, ejecución». La unión de ambas voces no tiene una etimología propia, sino que nombra un paradigma bautizado así por su fundamento en las funciones matemáticas.

El paradigma tiene su base matemática en el cálculo lambda, desarrollado por el lógico Alonzo Church, y se popularizó en la programación a través de lenguajes como Lisp, diseñado por John McCarthy. Su nombre en español traduce directamente el inglés functional programming, expresión acuñada en el ámbito académico de la informática teórica.

Principios de la programación funcional

PrincipioEn qué consiste
InmutabilidadLos datos no se modifican una vez creados; cualquier cambio genera una copia nueva.
Funciones purasAnte los mismos argumentos, devuelven siempre el mismo resultado, sin efectos secundarios.
Funciones de orden superiorReciben otras funciones como argumento o las devuelven como resultado.
RecursividadSustituye a los bucles como mecanismo principal para repetir una operación.

Estos principios pueden aplicarse de forma parcial: muchos lenguajes que no son plenamente funcionales, como JavaScript o Python, permiten escribir funciones puras y evitar la mutación en las partes del código donde conviene.

Ejemplos de uso de programación funcional

El equipo reescribió el módulo de facturación siguiendo programación funcional para reducir los errores causados por variables compartidas.

Lenguajes como Haskell obligan a programar de forma funcional; otros permiten combinar ese estilo con el imperativo.

La función de orden superior recibe una lista de precios y otra función que decide cómo transformarlos, sin modificar la lista original.

En la entrevista técnica le pidieron resolver el problema evitando bucles, mediante recursividad, una práctica habitual en programación funcional.

Prefiere la programación funcional para el procesamiento de datos porque facilita las pruebas automatizadas de cada función por separado.

Sinónimos y palabras relacionadas

Sinónimos: paradigma funcional, programación declarativa (en un sentido más amplio).

Antónimos: programación imperativa, programación procedimental.

No es lo mismo que:

Preguntas frecuentes sobre la programación funcional

¿Qué diferencia hay entre programación funcional y programación orientada a objetos?

La funcional evita el estado mutable y organiza el código en funciones puras; la orientada a objetos agrupa datos y comportamiento dentro de objetos que sí mantienen estado propio a lo largo de su vida.

¿Qué es una función pura?

Es una función que, ante los mismos argumentos, siempre devuelve el mismo resultado y no provoca efectos secundarios, como modificar una variable externa o escribir en un archivo.

¿Qué lenguajes son funcionales?

Haskell y Erlang son ejemplos de lenguajes diseñados desde el principio como funcionales; otros, como JavaScript, Python o Scala, permiten programar en ese estilo sin exigirlo de forma estricta.

Ver también