Last modified on 10 July 2006, at 21:05

User:Kowey/HaskellRedesign

The BookEdit

This book is divided into two tracks. The beginner's track (left) will introduce you to the very basics of the language and some of most frequently used libraries. This will enable you to build simple programs and prepare you for the advanced track. The advanced track (right) introduces functional programming concepts like monads, some new features of Haskell, such as Generalised Algebraic Data Types. At the very end of this book, we also have a set of chapters on the more day-to-day issues of working with Haskell, issues such as making use of the stardard library, building graphical interfaces or working with databases. You should be able to jump directly to this chapter from the basic track.

Please contribute! Everyone, regardless of Haskell competency, can help out. Spend five minutes improving a module and save someone else hours of time. Check out the notes for contributors.

Haskell BasicsEdit

Getting set up
Variables and functions
List basics
Next steps
Type basics
Recursion
Lists

Elementary HaskellEdit

A Miscellany of Types
List Processing
More on functions
Pattern matching
Control structures
Understanding Haskell indentation rules

Intermediate HaskellEdit

Simple input and output
Type Declarations
More on Datatypes
Class Declarations
Classes and Types
  

MonadsEdit

Understanding monads
Advanced monads
Additive monads (MonadPlus)
Transformers - putting monads together
Monads in practice

Advanced HaskellEdit

Arrows
Understanding arrows
Continuation passing style
Functional dependencies
Strictness
Laziness revisited

Fun with TypesEdit

Existentially quantified types
Polymorphism
Phantom types
Generalised algebraic data types

Haskell in PracticeEdit

LibrariesEdit

Modules and libraries
The Hierarchical Libraries
Lists - Arrays - Maybe - Maps
Random Numbers
  

TutorialsEdit

Building a standalone application
Testing and Debugging
Graphical user interfaces
Database libraries
Distributing your software with the Cabal