User:Mike/Collections/Haskell

Beginner's Track

 * Preface


 * Haskell Basics
 * 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
 * Recursion
 * More about lists
 * List processing
 * Type declarations
 * Pattern matching
 * Control structures
 * More on functions
 * Higher-order functions and Currying
 * Using GHCi effectively


 * Intermediate Haskell
 * Modules
 * Standalone programs
 * Indentation
 * More on datatypes
 * Other data structures
 * Classes and types
 * The Functor class


 * Monads
 * Understanding monads
 * Maybe
 * List
 * do Notation
 * IO
 * State
 * MonadPlus
 * Monad transformers
 * Practical monads


 * Advanced Haskell
 * Monoids
 * Applicative Functors
 * Arrow tutorial
 * Understanding arrows
 * Continuation passing style
 * Zippers
 * Mutable objects
 * Concurrency


 * Types
 * Polymorphism
 * Existentially quantified types
 * Advanced type classes
 * Phantom types
 * GADT
 * Kinds


 * Wider
 * Denotational semantics
 * Category theory
 * The Curry-Howard isomorphism
 * Fix and recursion


 * Performance
 * Performance Introduction
 * Performance Examples
 * Graph reduction
 * Laziness
 * Time and space profiling
 * Strictness
 * Algorithm complexity


 * Misc
 * Debugging
 * Data structures primer