Haskell

Keywords: Haskell, Años 1980, Compiladores, De facto, Factorial, Haskell Curry, Intérprete, Lenguaje de programación

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:

Para información más detallada, referirse al sitio oficial y/o a los links al final de éste artículo.

Nota: Este artículo es traducción de la versión inglesa - Haskell

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.

Vínculos Externos

Inglés:

Español:

  1. REDIRECT Plantilla:Lenguajes de programación

Keywords: Haskell, Años 1980, Compiladores, De facto, Factorial, Haskell Curry, Intérprete, Lenguaje de programación