Haskell (lenguaje de programación)


Haskell ( / ˈ h æ s k əl / [27] ) es un lenguaje de programación de propósito general , tipado estáticamente , puramente funcional con inferencia de tipo y evaluación diferida . [28] [29] Diseñado para la enseñanza, la investigación y la aplicación industrial, Haskell ha sido pionero en una serie de características avanzadas del lenguaje de programación, como las clases de tipos , que permiten la sobrecarga del operador con seguridad de tipos . La implementación principal de Haskell es el compilador Haskell de Glasgow. (GHC). Lleva el nombre del lógico Haskell Curry . [1]

La semántica de Haskell se basa históricamente en la del lenguaje de programación Miranda , que sirvió para centrar los esfuerzos del grupo de trabajo inicial de Haskell. [30] La última especificación formal del idioma se realizó en julio de 2010, mientras que el desarrollo de GHC ha ampliado Haskell a través de extensiones de idioma. La siguiente especificación formal estaba prevista para 2020 . [3] El 29 de octubre de 2021 se lanzó GHC2021 en la versión 9.2.1 de GHC. [31]

Haskell se utiliza en la academia y la industria. [32] [33] [34] En mayo de 2021 , Haskell ocupaba el puesto 28 entre los lenguajes de programación más populares según las búsquedas de tutoriales de Google, [35] y representaba menos del 1 % de los usuarios activos en el repositorio de código fuente de GitHub . [36]

Tras el lanzamiento de Miranda por Research Software Ltd. en 1985, creció el interés por los lenguajes funcionales perezosos. Para 1987, existían más de una docena de lenguajes de programación no estrictos y puramente funcionales. Miranda fue el más utilizado, pero se trataba de un software propietario . En la conferencia sobre Lenguajes de Programación Funcional y Arquitectura de Computadores (FPCA '87) en Portland, Oregón , hubo un fuerte consenso para formar un comité para definir un estándar abierto para dichos lenguajes. El propósito del comité era consolidar los lenguajes funcionales existentes en uno común para que sirviera como base para futuras investigaciones en el diseño de lenguajes funcionales. [37]

Las clases de tipos , que permiten la sobrecarga de operadores con seguridad de tipos , fueron propuestas por primera vez por Philip Wadler y Stephen Blott para Standard ML , pero se implementaron por primera vez en Haskell entre 1987 y la versión 1.0. [38] [39]

La primera versión de Haskell ("Haskell 1.0") se definió en 1990. [1] Los esfuerzos del comité dieron como resultado una serie de definiciones de lenguaje (1.0, 1.1, 1.2, 1.3, 1.4).


Jerarquía de clases de tipo en el preludio de Haskell a partir de GHC 7.10. La inclusión de Foldable y Traversable (con los cambios correspondientes en las firmas tipográficas de algunas funciones) y de Applicative como intermedio entre Functor y Monad son desviaciones del estándar Haskell 2010.