Haskell featured article badge

Haskell Logo
Haskell Logo
Category:Books with print version#Haskell Category:Books with Public Collections
  • Haskell is lazy. Evaluations are performed only when needed.
  • Haskell provides a modern type system with state-of-the-art features like type classes and generalized algebraic data types (soon enough, terms like those will roll smoothly off your tongue).

Haskell is enjoyable to use because dealing with pure functions makes code much easier to reason about, and the advanced type system helps catch silly and profound mistakes.

Our aim in this book is to introduce you to the Haskell programming language from the very basics to advanced features and to computer programming in general. We urge seasoned programmers to be especially patient with this process. The languages you are familiar with are likely to differ greatly from Haskell, and the habits acquired from those languages might make it difficult to understand how things work Haskell is simple, but different. Learning to see the world through the warped mindset of a functional programmer is an adventure in a brave new world, which brings knowledge valuable far beyond the boundaries of any language.

Overview

The book is divided into three sections: a Beginner's Track, an Advanced Track, and a section called Haskell in Practice. The last section, which covers practical use cases, depends only on the Beginner's Track. Seasoned programmers may read the overview to quickly evaluate what makes Haskell unique and different from other languages.

Beginner's Track

This section introduces you to Haskell basics and some commonly used libraries. At the end of this track, you should be able to write simple Haskell programs. Most chapters include exercises, with solutions, for your practice.

Haskell Basics

Elementary Haskell

Intermediate Haskell

Monads

Advanced Track

This section introduces wider functional programming concepts such as different data structures and type theory. It will also cover more practical topics like concurrency.

Welcome to Haskell

Fun with Types

Wider Theory

Haskell Performance

Haskell in Practice

Day-to-day issues of working with Haskell include items such as knowing the standard libraries, building graphical interfaces, and working with databases. You should be able to jump directly to this section from the beginner's track.

Libraries Reference

General Practices

Specialised Tasks

Appendices

About the book

Other Haskell tutorials

  • 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. Available online at no charge (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.

Tutorials that have been incorporated into the Haskell Wikibook

The following may be read independently, but their content has been imported and adapted already into the Wikibook here

Additional resources

Category:Book:Haskell#%20 Category:Subject:Haskell programming language#Haskell Category:Subject:Haskell programming language/all books Category:Subject:Computer programming languages/all books Category:Subject:Computer programming/all books Category:Subject:Computer science/all books Category:Subject:Computing/all books Category:Subject:Books by subject/all books Category:Subject:Computing/all books Category:Subject:Books by subject/all books Category:Book:Haskell#%20 Category:Book:Wikibooks Stacks/Books#HaskellCategory:Shelf:Haskell programming language Category:Shelf:Haskell programming language/all books Category:Shelf:Computer programming/all books#Computer%20programming Category:Shelf:Computer programming languages/all books#Computer%20programming%20languages Category:Shelf:Computer science/all books#Computer%20science Category:Department:Computing/all books#Computing Category:Alphabetical/H Category:Books nearing completionCategory:Books by completion status/all books
Category:Alphabetical/H Category:Book:Haskell Category:Book:Wikibooks Stacks/Books Category:Books by completion status/all books Category:Books nearing completion Category:Books with PDF version Category:Books with Public Collections Category:Books with print version Category:Department:Computing/all books Category:Featured books Category:Shelf:Computer programming/all books Category:Shelf:Computer programming languages/all books Category:Shelf:Computer science/all books Category:Shelf:Haskell programming language Category:Shelf:Haskell programming language/all books Category:Subject:Books by subject/all books Category:Subject:Computer programming/all books Category:Subject:Computer programming languages/all books Category:Subject:Computer science/all books Category:Subject:Computing/all books Category:Subject:Haskell programming language Category:Subject:Haskell programming language/all books