Open main menu

Wikibooks β


Haskell is a functional programming language. If you are a seasoned programmer, consult the overview to see what makes Haskell unique and different from other languages.

Haskell is distinct in a few ways:

  • Haskell is pure. A function when invoked using the same arguments every time will return the same result.
  • Haskell is lazy. Evaluations are performed only when needed.
  • Haskell provides a modern type system with state of the art features like typeclasses 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.


The book is divided into a Beginner's Track, an Advanced Track, and a section called Haskell in Practice which covers more day-to-day issues and uses mostly items from the Beginner's Track.


You may search the book here:

Beginner's TrackEdit

Advanced TrackEdit

Haskell in PracticeEdit

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 ReferenceEdit

General PracticesEdit

Specialised TasksEdit


About the bookEdit

Other Haskell tutorialsEdit

  • 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 WikibookEdit

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

Additional resourcesEdit