Haskell
Haskell es un lenguaje de programación funcional e interpretado que obtuvo su nombre del lógico Haskell Curry. Fue creado por un comité en los años 1980 con el objetivo específico de definir dicho lenguaje.El lenguaje evoluciona rápidamente con y (ver más abajo) como los representantes actuales del estándar de facto. El último estándar semi-oficial es Haskell 98, con la intención de especificar una versión mínima y compatible del lenguaje como base para futuras extensiones y para su enseñanza.
Las características más interesantes de Haskell incluyen el soporte para tipos de datos y funciones recursivas, listas, tuplas, guardas y reconocimiento 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 , ambas denominadas Parallel Haskell.
- Más versiones paralelas y distribuídas de Haskell llamadas Distributed Haskell (anteriormente Goffin) y Eden
- Una version 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).
Nota: Este artículo es traducción de la versión inglesa -
| Table of contents |
|
2 Implementaciones 3 Vínculos Externos |
Ejemplos
La definición clásica de la función factorial
fac 0 = 1 fac n = n * fac (n - 1)O una versión más estilizada usando una notación especial para listas y la función estándar
product:
facs n = product [1..n]Una implementación muy simple que devuelve el enésimo término de la sucesión de Fibonacci:
fib 0 = 0 fib 1 = 1 fib n = fib (n - 2) + fib (n - 1)Una versión que responde en tiempo lineal aprovechando las tuplas:
fibs 0 = (0,1) fibs n = (b,a+b) where (a,b) = fibs (n-1)
Implementaciones
Todas las siguientes implementaciones cumplen en su totalidad, o casi en su totalidad, con los estándares de Haskell 98 y son distribuídas bajo licencias Open Source. No se conocen implementaciones comerciales del lenguaje.
- ([1]) es un intérprete. Ofrece una compilación rápida de los programas y un tiempo rasonable de ejecución. También viene con una librería gráfica muy simple, lo que la hace adecuada para quienes lo están aprendiendo. Sin embargo no es una implementación a despreciar, es una de las más livianas y compatibles.
- ([1]): "Glasgow Haskell Compiler" compila a código nativo en una variedad de arquitecturas y puede también compilar a C. Es, probablemente, una de los compiladores más populares e incluso tiene unas cuantas librerías (por ejemplo OpenGL) que, aunque muy útiles, sólo funcionarán bajo GHC.
- nhc98 ([1]) es otro compilador con un mejor tiempo de ejecución que Hugs. Ésta implementación se enfocó a minimizar la utilización de la memoria convirtiéndola en una buena opción para arquitecturas lentas y/o antiguas.
- HBC ([1]) es otro compilador a código nativo de Haskell. Si bien no ha sido actualizada en el último tiempo sigue siendo bastante útil.
- Helium ([1]) es un nuevo dialecto de Haskell. Se focalizó en ser muy fácil de aprender; por ello, no incluye soporte para todo el estándar de Haskell haciendo que no sea totalmente compatible.
Vínculos Externos
Inglés:
- Página Oficial de Haskell
- Wiki de Haskell
- Una Simple Introducción a Haskell 98 (pdf format)
- La Evolución de un Programador de Haskell (una forma cómica de ver los distintos estilos de programación de Haskell)
- Una bibliografía de las Investigaciones en Haskell

Haz Enciclopedia.com tu página de inicio y aprende algo nuevo cada día