Haskell

Haskell
Haskell-Logo.svg
Información general
Paradigma Funcional, no estricto, modular, fuertemente tipificado
Apareció en 1990
Diseñado por Universidad de Yale, Universidad de Glasgow
Tipo de dato Fuerte, estático
Implementaciones GHC, Hugs, NHC, Yhc, JHC
Influido por Miranda, Orwell, ML, Gofer
Ha influido a Python, Java, C#, Scala
[ editar datos en Wikidata]

Haskell (pronunciado /hæskəl/)[1] es un lenguaje de programación estandarizado multi-propósito puramente funcional con semánticas no estrictas y fuerte tipificación estática. Su nombre se debe al lógico estadounidense Haskell Curry. En Haskell, "una función es un ciudadano de primera clase" del lenguaje de programación. Como lenguaje de programación funcional, el constructor de controles primario es la función. El lenguaje tiene sus orígenes en las observaciones de Haskell Curry y sus descendientes intelectuales.

En los años 1980 se constituyó un comité cuyo objetivo era crear un lenguaje funcional que reuniera las características de los múltiples lenguajes funcionales de la época, el más notable Miranda, y resolviera la confusión creada por la proliferación de los mismos.

El lenguaje evoluciona rápidamente y (ver más abajo) como los representantes actuales del estándar de facto. El último estándar semi-oficial es Haskell 2010, cuyas diferencias respecto al anterior estándar Haskell 98 son:

Nuevas características del lenguaje:

  • Interfaz de funciones foráneas (FFI), que permite usar código C en un programa Haskell y código Haskell en un programa C. Un ejemplo explicativo se puede encontrar aquí
  • Nombres jerárquicos para los módulos, por ejemplo Data.Bool.
  • Guardianes con patrones.

Características eliminadas del lenguaje:

  • Sintaxis de patrones (n+k). Con lo cual, la siguiente definición de la función factorial no es válida en Haskell 2010 y posteriores: fact (n+1) = (n+1) * fact n.

Las características más interesantes de Haskell incluyen el soporte para tipos de datos y funciones recursivas, listas, tuplas, guardas y encaje de patrones. La combinación de las mismas pueden resultar en algunas funciones casi triviales cuya versión en lenguajes imperativos pueden llegar a resultar extremadamente tediosas de programar. Haskell es, desde 2002, uno de los lenguajes funcionales sobre los que más se ha investigado. Se han desarrollado muchas variantes:

  • Versiones paralelas del MIT y Glasgow, ambas denominadas Parallel Haskell.
  • Más versiones paralelas y distribuidas de Haskell llamadas Distributed Haskell (anteriormente Goffin) y Eden
  • Una versión con ejecución especulativa: Eager Haskell
  • Varias versiones orientadas a objetos: Haskell++, O'Haskell y Mondrian.
  • Una versión educativa llamada Gofer desarrollada por Mark Jones que fue suplantada por Hugs (ver abajo).

Para información más detallada, referirse al sitio oficial o a los enlaces al final de este artículo.

Historia

A partir de la publicación de Miranda, en 1985, los lenguajes funcionales proliferaron. En 1987, existían compitiendo entre ellos más de una docena de lenguajes de programación puros funcionales no estrictos. Durante la conferencia sobre Lenguajes de Programación Funcional y Arquitecturas de Ordenador (FPCA '87) en Portland, Oregón, se mantuvo un encuentro durante el cual se alcanzó un fuerte consenso entre sus participantes para formar un comité que definiese un estándar abierto para tales lenguajes. Esto se hizo con el propósito expreso de consolidar los lenguajes existentes en uno único que sirviera como base para la investigación futura en diseño de lenguajes.[3] Los esfuerzos del comité resultaron en una serie de definiciones del lenguaje, que culminaron a finales de 1997 en Haskell 98, que se intentó fuera una versión del lenguaje mínima, estable y portable, junto con una biblioteca estándar asociada para la enseñanza, y como base de futuras extensiones. El comité expresamente aprobó la creación de extensiones y variantes de Haskell 98 mediante la adición e incorporación de características experimentales.

En enero de 1999, el estándar del lenguaje Haskell 98 se publicó en "The Haskell 98 Report". En enero de 2003, se publicó una versión revisada en "Haskell 98 Language and Libraries: The Revised Report".[6] En 2010 se lanza Haskell 2010.

Other Languages
български: Haskell
català: Haskell
Ελληνικά: Haskell
Esperanto: Haskell
eesti: Haskell
suomi: Haskell
français: Haskell
galego: Haskell
עברית: Haskell
हिन्दी: हैस्कल
Bahasa Indonesia: Haskell
日本語: Haskell
한국어: 하스켈
Latina: Haskell
latviešu: Haskell
Bahasa Melayu: Haskell
norsk bokmål: Haskell
polski: Haskell
română: Haskell
русский: Haskell
slovenščina: Haskell
српски / srpski: Haskel (programski jezik)
тоҷикӣ: Haskell
Türkçe: Haskell
українська: Haskell
中文: Haskell