λ Lessons Pattern matching, first-class functions, and abstracting over recursion in Haskell

This is a short, interactive lesson that teaches core functional programming concepts. It was designed to transform the way you think about performing operations on lists of things, by showing you how functions are executed.

You can explore the way map and fold ( foldr and foldl ) are defined and computed. Feel free to re-define any of the functions used in this document in the Function Editor .

This document implements a small, dynamically-typed, subset of Haskell that includes integers, lists, functions, pattern matching and recursion.