functional programming
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.
- curryingaplicación parcial
- ElixirElixir
- ErlangErlang
- F#F#
- functional languagelenguaje funcional
- HaskellHaskell
- higher order functionfunción de orden superior
- programmingprogramación
- programming languagelenguaje de programación
- SchemeScheme