Getting Started. Monads. Functional Programming Fundamentals. Haskell Notes And Examples - Albert Y. C. Lai. Anat category theory teki con. Tutorials. Introductions to Haskell These are the recommended places to start learning, short of buying a textbook. See also Meta-tutorial, another, shorter overview of tutorials aimed at helping you find the right one. Category Theory, The essence of interface-based design - Erik Meijer. A QuickCheck Tutorial: Generators. QuickCheck is a Haskell library for testing properties using randomly generated values.
It's one of the most popular Haskell libraries and part of the reason why functional programming has mattered. In short, we can use functions to express properties about our programs and QuickCheck to test that such properties hold for large numbers of random cases. For example, given a function to reverse the elements of a list: reverse :: [a] -> [a] reverse  =  reverse (x:xs) = reverse xs ++ [x] We can define a property to check whether reversing a list (of integers) yields the same list or not: