Haskell es un lenguaje de programación puramente funcional estandarizado.

***

¿Qué es Haskell?

Es un lenguaje de programación puramente funcional estandarizado, de propósito general, con una semántica no estricta y una escritura estática fuerte.  Presenta un sistema de tipos con inferencia de tipos y evaluación perezosa.

Las clases de tipos aparecieron por primera vez en el lenguaje de programación Haskell.

Se basa en la semántica, pero no en la sintaxis, del lenguaje Miranda, que sirvió para enfocar los esfuerzos del grupo de trabajo inicial.

Creación

El nombre de lenguaje se debe al matemático y lógico estadounidense Haskell Curry, debido a su aportación al cálculo lambda, el cual tiene gran influencia en este lenguaje de programación. El lenguaje tiene sus orígenes en las observaciones de Curry y sus seguidores.

Curry se educó en la Universidad Harvard y recibió un doctorado en Göttingen en 1930. Enseñó en las universidades de Princeton, Harvard, y Pensilvania.  Su principal trabajo fue en lógica matemática, especialmente en la teoría de sistemas y procesos formales – lógica combinatoria, el cual es el fundamento para los lenguajes de programación funcionales Haskell y Curry, ambos nombrados en su honor.

Cronología de Haskell

En febrero de 1999, el estándar de lenguaje Haskell 98 se publicó originalmente como The Haskell 98 Report.

A principios de 2006, comenzó el proceso de definición de un sucesor del estándar Haskell 98, denominado informalmente Haskell Prime.

Se requiere que los compiladores de Haskell 2010 sean compatibles con la extensión Haskell 2010, y se les recomienda que apoyen a otros que correspondan a las extensiones agregadas.

Este lenguaje presenta evaluación perezosa, coincidencia de patrones, comprensión de listas, clases de tipos y polimorfismo de tipos.

Además, tiene un sistema de tipo fuerte y estático basado en la inferencia de tipo Hindley-Milner.

El York Haskell Compiler fue una bifurcación de nhc98, con el objetivo de ser más simple, más portátil y eficiente, y de integrar el soporte para Hat, el trazador del lenguaje.

Algunos obstáculos

Bastiaan Heeren, Daan Leijen y Arjan van IJzendoorn en 2003 también observaron algunos obstáculos para los estudiantes de este lenguaje: “La sintaxis sutil y el sistema de tipo sofisticado de este lenguaje son una espada de doble filo, muy apreciada por programadores experimentados pero también una fuente de frustración entre los principiantes, ya que la generalidad de este lenguaje a menudo conduce a mensajes de error crípticos”.

Para abordar esto, los investigadores de la Universidad de Utrecht desarrollaron un intérprete avanzado llamado Helium, que mejoró la facilidad de uso de los mensajes de error al limitar la generalidad de algunas características de este lenguaje y, en particular, eliminar el soporte para clases de tipo.

Ben Lippmeier diseñó Disciple como un dialecto de este lenguaje estricto por defecto con un sistema de tipo y efecto, para abordar las dificultades de Haskell para razonar sobre la evaluación perezosa y usar estructuras de datos tradicionales como matrices mutables.

Haskell genérico, una versión del lenguaje con soporte de sistema de tipos para la programación genérica.

Como este lenguaje separa los dominios y el comportamiento, puede encontrar correspondencias con el mundo algebraico que subyace en las clases de tipos estándar de la biblioteca básica de este lenguaje de programación.

“Clases de tipo, propuestas por primera vez durante el diseño del lenguaje de programación Haskell, …” -John Garrett Morris, “Clases de tipo y cadenas de instancia: un enfoque relacional”.

Puede ver más del lenguaje de programación citado aquí.

Un lenguaje con sintaxis muy parecida es Plutus

 

Texto de DiarioBitcoin

« Volver al índice del glosario

ADVERTENCIA: Este es un artículo de carácter informativo. DiarioBitcoin es un medio de comunicación, no promociona, respalda ni recomienda ninguna inversión en particular. Vale señalar que las inversiones en criptoactivos no están reguladas en algunos países. Pueden no ser apropiadas para inversores minoristas, pues se podría perder el monto total invertido. Consulte las leyes de su país antes de invertir.