Haskell/New contents

From Wikibooks, open books for an open world
< Haskell
Jump to: navigation, search

Beginner's Track[edit]

This section 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.

Haskell Basics[edit]

Getting set up
Variables and functions
Truth values
Type basics
Lists and tuples
Type basics II
Next steps
Building vocabulary
Simple input and output

Elementary Haskell[edit]

More about lists
Folds, Scans, & Comprehension
Type declarations
Pattern matching
Control structures
More on functions
Higher order functions
Using GHCi effectively

Intermediate Haskell[edit]

Standalone programs
More on datatypes
Other data structures
Classes and types
The Functor class


Understanding monads

do Notation

Additive monads (MonadPlus)
Monad transformers

Advanced Track[edit]

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

Advanced Haskell[edit]

Monoids 50% developed
Applicative Functors 50% developed
Arrow tutorial
Understanding arrows
Continuation passing style (CPS)
Value recursion (MonadFix)
Zippers 75% developed
Mutable objects 0% developed
Concurrency 0% developed
Template Haskell 0% developed

Program correctness[edit]

Denotational semantics 75% developed
Equational reasoning
Program derivation
Category theory
The Curry-Howard isomorphism
fix and recursion

Fun with Types[edit]

Polymorphism basics 25% developed
Existentially quantified types 50% developed
Advanced type classes 50% developed
Phantom types 25% developed
Generalised algebraic data-types (GADT) 75% developed
Datatype algebra
Type constructors & Kinds 0% developed

Haskell in Time and Space[edit]

Introduction 50% developed
Step by Step Examples 0% developed
Graph reduction 25% developed
Laziness 50% developed
Time and space profiling 0% developed
Strictness 0% developed
Algorithm complexity 25% developed
Data structures

Haskell in Practice[edit]

This section covers the more day-to-day issues of working with Haskell, issues such as making use of the standard library, building graphical interfaces or working with databases. You should be able to jump directly to this section from the basic track.

Libraries Reference[edit]

The Hierarchical Libraries
Lists - Arrays - Maybe - Maps
Random Numbers


Building a standalone application
Graphical user interfaces
Database libraries
Distributing your software with the Cabal
Web programming with Haskell