Introducción
Haskell Stack es un entorno de desarrollo integral para Haskell. Podríamos dividirlo en tres grandes componentes: Stack, que es el constructor de proyectos de múltiples paquetes de Haskell; GHC (Glasgow Haskell Compiler), el compilador para programas en Haskell; y Haddock, un generador de documentación para paquetes de Haskell. El presente tutorial mostrará en la sección de instalación las instrucciones para los sistemas operativos Windows y GNU/Linux, a pesar de que muchas de las fases son exactamente iguales.
Descargar
Hay tres maneras ampliamente usadas para instalar Haskell en las diversas plataformas. Click aquí.
Comunidad
Haskellers interactúa, habla y colabora en varios medios y en todo el mundo. Hay lugares para aprender, enseñar, hacer preguntas y encontrar contribuidores y colaboradores. Click aquí
Documentación
En la página de Haskell podemos encontrar libros, cursos, tutoriales, manuales y guías, entre muchas cosas más. Click aquí
¡Pongámoslo a prueba!
Got 5 minutes?
Type
help
to start the tutorial.
Or try typing these out and see what happens (click to insert):
23 * 36
or
reverse "hello"
or
foldr (:) [] [1,2,3]
Historia
1978
1985
1987
1988
1990
1991
1992
1996
1997
1999
1999
2002
Características
A continuación se presentan algunas de las características de haskell.
Puro
En Haskell toda operación computacional se contempla como operaciones matemáticas. Así, las funciones solo dependerán de sus argumentos, no de su estado global.
Declarativo
Como su elemento central son las funciones, este se centra en determinar QUÉ hace el programa en vez de CÓMO lo hace.
Polimórfico
Un valor es polimorfico si puede tener más de un tipo. En Haskell se manejan dos tipos de polimorfismo: Paramétrico y Ad-hoc
Estáticamente tipado
Haskell tiene un tipado estático, lo que quiere decir que: Se pueden encontrar errores antes de que se ejecute el programa ya que los tipos se verifican en tiempo de compilación.
Perezoso
Una expresión no es evaluada cuando se le asocian valores a sus variables, sino que se ejecuta cuando su resultado sea requerido por otras operaciones.
Programas concisos
Tiene pocas palabras clave. Usa indentación como medio de estructuración del código
Sistema de tipos
Tiene un sistema de tipo que requiere un poco de información del programador, con los cuales puede detectar una gran variedad de errores de incompatibilidad.
Efectos monádicos
Para una función, dada una misma entrada siempre se producirá la misma salida, independientemente del contexto de las variables.
Concurrente
Permite que, durante un cierto tiempo, más de un proceso se ejecute. Esto se da gracias a su compilador que permite la computación en paralelo.
Frameworks
Happstack
Se considera un framework web completo. El principal componente es happstack-server: un servidor HTTP integrado, combinadores de enrutamiento y fileserving.
WebAPI
Biblioteca ligera basada en WAI que permite definir peticiones y respuestas para los puntos finales como tipos a través de un contrato. Permite crear servicios Web / API REST y generar un cliente Haskell para los servicios existentes de la API.
Wiki de Haskell
Si buscas más información y te interesa el lenguaje, la wiki de Haskell te será muy útil...