Haskell

De Wikilibros, la colección de libros de texto de contenido libre.

Haskell es un lenguaje de programación puramente funcional. Se diferencia de varias formas:

  • Haskell es un lenguaje de programación funcional puro. Cuando se invoca una función usando los mismos argumentos devolverá el mismo resultado cada vez.
  • Haskell es perezoso. Las evaluaciones se realizan solo cuando es necesario.
  • Haskell proporciona un sistema de tipado moderno con características sofisticadas, como clases de tipos y tipos de datos algebraicos generalizados (muy pronto, términos como estos van a sonar bien fuera del lenguaje).
  • Haskell provee un sistema tipográfico moderno con funciones de última generación, como clases tipográficas y tipos de datos algebraicos generalizados (muy pronto, términos como esos saldrán fácilmente de su boca).

Haskell es divertido de usar porque tratar con funciones puras hace que el código sea mucho más fácil de razonar, y el sistema de tipo avanzado ayuda a detectar errores tontos y profundos.

El objetivo de este libro es introducir al lector, sea este un estudiante o persona interesada en aprender el lenguaje Haskell, en dos aspectos; en primer lugar, al lenguaje Haskell desde las características más básicas a las avanzadas y en segundo lugar a la programación en general. Se insta que los programadores avanzados sean particularmente pacientes con este proceso. Es muy probable que los lenguajes con los que están familiarizados difieran mucho de Haskell, y los hábitos que provienen de esos lenguajes pueden dificultar el proceso de entendimiento de cómo se maneja la sintaxis; Haskell es simple, pero diferente. Aprender a ver el mundo a través de la perspectiva matemática de un programador funcional es una aventura en un mundo nuevo y desafiante, que trae conocimiento valioso más allá de los límites de cualquier lenguaje. Teniendo en cuenta todos estos aspectos, este libro también pretende ser una herramienta y ayuda a la hora de programar en Haskell.

Descripción general[editar]

El libro está dividido en tres secciones: una unidad para principiantes, una unidad avanzada y una sección llamada Haskell en la práctica. La última sección, que cubre casos prácticos de uso, depende únicamente de la unidad para principiantes. Los programadores experimentados pueden leer la descripción general para evaluar rápidamente qué hace que Haskell sea único y diferente de otros lenguajes.


Unidad para principiantes[editar]

Esta sección le presenta los conceptos básicos de Haskell y algunas bibliotecas de uso común. Al final de esta unidad, debería poder escribir programas simples de Haskell. La mayoría de los capítulos incluyen ejercicios, con soluciones, para su práctica.

Principios básicos de Haskell[editar]

Haskell nivel elemental[editar]

Haskell nivel intermedio[editar]

Mónadas[editar]

Unidades avanzadas[editar]

Esta sección presenta conceptos de programación funcional más amplios, como diferentes estructuras de datos y teoría de tipos. También cubrirá temas más prácticos como la concurrencia.

Haskell avanzado[editar]

Diversión con tipos[editar]

Teoría ampliada[editar]

Rendimiento de Haskell[editar]

Haskell en la práctica[editar]

Los problemas cotidianos de trabajar con Haskell incluyen elementos como conocer las bibliotecas estándar, crear interfaces gráficas y trabajar con bases de datos. Debería poder saltar directamente a esta sección desde la unidad para principiantes.

Bibliotecas de referencia[editar]

Prácticas generales[editar]

Tareas especializadas[editar]

Apéndices[editar]

Acerca del libro[editar]

Otros tutoriales de Haskell[editar]

  • Haskell Meta-tutorial - the tutorial to find other tutorials
  • Learn You a Haskell for Great Good - Tutorial aimed at beginners who may have experience in imperative programming languages but haven't programmed in a functional language before. Freely available online under a CC-BY-NC-SA license; also released as a conventional book.
  • Real World Haskell - an O'Reilly book, available online at no charge (CC-BY-NC license). Built around case studies of practical applications.
  • Write Yourself a Scheme in 48 Hours - (imported here) An alternate approach to teaching Haskell (and perhaps Scheme), aimed at a more advanced audience (though not necessarily one that knows how to program!)
  • Yet Another Haskell Tutorial - (imported here) is aimed at beginners and takes a practical approach to things.

Recursos adicionales[editar]