Haskell

Un lenguaje de programación avanzado y puramente funcional.

Ver más

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

John Bauker dio la conferencia ganadora del premio Turing: "¿Puede la programación liberarse del estilo von Neumann?".

1985

Creación de Miranda e impulso de los lenguajes de programación perezosos.

1987

En la (FPCA '87) se propuso definir un lenguaje que sea un estándar abierto para la programación funcional.

1988

Se pone en marcha un comité para la creación del lenguaje liderado por Paul Hudak, en la universidad de Yale.

1990

Paul Hudak y Philip Wadler publicaron el informe de la versión 1.0 de Haskell. Se creó una lista de difusión por correo.

1991

Fue publicada la versión 1.1 de Haskell, la cual incluyó expresiones y secciones de operadores.

1992

Fue publicada la versión 1.2 de Haskell, la cual solamente incluye pequeñas modificaciones.

1996

Fue publicada la versión 1.3 de Haskell, que incluyó la expansión de librerías, Monadic I/O, clases constructor y el reemplazo 'Text'.

1997

Fue publicada la versión 1.4 de Haskell, la cual solamente incluye pequeñas modificaciones.

1999

Se publicó The Haskell 98 Report, hito el cual marcaba la estabilidad del lenguaje.

1999

El Comité de Haskell dejó de existir. Ahora eran los participantes en la lista de difusión por correo sus contribuyentes.

2002

La versión editada de The Haskell 98 Report fue publicada por la Universidad de Cambridge, haciéndolo disponible para toda la comunidad.

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

Happstack

Se considera un framework web completo. El principal componente es happstack-server: un servidor HTTP integrado, combinadores de enrutamiento y fileserving.

webapi

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.

Material


Tutorial

Indicaciones basicas y ejemplos que te ayudaran a iniciar en este lenguaje.

Ejemplos

Revisa unos ejemplos de Haskell para que puedas tener una mejor idea de su funcionamiento.

Taller

Pon a prueba lo que has aprendido, explora todas las caracteristicas de Haskell.

Wiki de Haskell

Si buscas más información y te interesa el lenguaje, la wiki de Haskell te será muy útil...