Tugurium/GTI

Glosario Terminología Informática

functional programming

0 programación funcional
Paradigma de programación declarativa basado en un concepto de función algo diferente al que estamos acostumbrados, más cercano al matemático. No hay variables, por lo que estas funciones sólo tratarán con sus valores de entrada y con constantes predefinidas, no hay más posibilidad de acción, todo ello en contraste con la programación imperativa, que enfatiza los cambios de estado mediante la mutación de variables.
Los programas funcionales se caracterizan por:
-Transparencia referencial. Al no haber variables, no hay efectos laterales, al ejecutar la función no cambiará nada fuera del entorno de ésta.
-Evaluación perezosa. Al no tener que seguir una serie de órdenes, una tras otra, algunos los lenguajes funcionales sólo evalúan lo que les es requerido en cada momento.
-Altísima abstracción. Los lenguajes funcionales implementan muchísimos mecanismos de abstracción.
-Elegancia, legibilidad, flexibilidad. Cuanto más abstracto es un lenguaje, más se potencian estas características.
-Facilidad para las pruebas y la depuración. Gracias a la transparencia referencial.
-Mayor dificultad inicial. Aunque sean muy fáciles de entender y mantener, suele ser más difícil escribir un programa funcionalmente. La gran variedad de conceptos complejos a tener en cuenta hace difícil dominar el lenguaje y producir buen código.
-Falta de recursos. Al estar tan poco extendidos, no se dispone de librerías o de entornos de trabajo como los existentes para otros lenguajes.
Muchos lenguajes de programación funcionales pueden ser vistos como elaboraciones del cálculo lambda. Entre ellos se encuentran: Scheme, Erlang, Rust, Objective Caml, Scala, Elixir, F# y Haskell.
2016-10-30