Learning Haskell logo

Introduction

Haskell is a general purpose, purely functional programming language. This portal points to places where you can go if you want to learn Haskell. 

The introduction on the Haskell homepage tells you that Haskell gives you: substantially increased programmer productivity; shorter, clearer, and more maintainable code; fewer errors; higher reliability; a smaller "semantic gap" between the programmer and the language; shorter lead times.

There is an old - but still relevant - paper about Why Functional Programming Matters by John Hughes. More recently Sebastian Sylvan started a web page on this topic.
And there is a table comparing Haskell to other functional languages.
Many questions about functional programming are answered by the comp.lang.functional FAQ


Implementations

  Messages Size Tools Remarks
Hugs  +/- ++ - Fast compilation; used a lot for learning Haskell
GHC + - ++ Many language extensions; generated code very fast 
NHC ? + ++ Profiling; debugging; tracing
Helium ++ ++ - No type classes (yet!) and thus incompatible with most material on this site

Textbooks

Course Material Tutorials References
The Haskell School of Expression

Haskell: The Craft of Functional Programming

Introduction to Functional Programming using Haskell

An Introduction to Functional Programming Systems Using Haskell

Algorithms: A functional programming approach

The Haskell Road to Logic, Maths and Programming

Programming in Haskell

Functional programming: course notes (English, Dutch,Spanish), slides in Dutch

CS1011: tutorials, lab exercises and solutions

Yet Another Haskell Tutorial

Haskell-Tutorial

Online Haskell Course (German)

A Gentle Introduction to Haskell

Two dozen short lessons

Tackling the Awkward Squad (on monads and IO, concurrency and exceptions)

Tour of the Haskell Syntax

Haskell Reference

Tour of the Haskell Prelude

Tour of the Helium Prelude

Some common Hugs error messages

 


Send comments to Arjan van IJzendoorn, afie@cs.uu.nl