This repo will contain notes, experiments, exercises, etc. pertaining to my experiences working my way through the book, Learn You a Haskell for Great Good.
- Introduction
- About this tutorial
- So what's Haskell?
- What you need to dive in
- Starting Out
- Ready, set, go!
- Baby's first functions
- An intro to lists
- Texas ranges
- I'm a list comprehension
- Tuples
- Types and Typeclasses
- Believe the type
- Type variables
- Typeclasses 101
- Syntax in Functions
- Pattern matching
- Guards, guards!
- Where!?
- Let it be
- Case expressions
- Recursion
- Hello recursion!
- Maximum awesome
- A few more recursive functions
- Quick, sort!
- Thinking recursively
- Higher Order Functions
- Curried functions
- Some higher-orderism is in order
- Maps and filters
- Lambdas
- Only folds and horses
- Function application with $
- Function composition
- Modules
- Loading modules
- Data.List
- Data.Char
- Data.Map
- Data.Set
- Making our own modules
- Making Our Own Types and Typeclasses
- Algebraic data types intro
- Record syntax
- Type parameters
- Derived instances
- Type synonyms
- Recursive data structures
- Typeclasses 102
- A yes-no typeclass
- The Functor typeclass
- Kinds and some type-foo
- Input and Output
- Hello, world!
- Files and streams
- Command line arguments
- Randomness
- Bytestrings
- Exceptions
- Functionally Solving Problems
- Reverse Polish notation calculator
- Heathrow to London
- Functors, Applicative Functors and Monoids
- Functors redux
- Applicative functors
- The newtype keyword
- Monoids
- A Fistful of Monads
- Getting our feet wet with Maybe
- The Monad type class
- Walk the line
- do notation
- The list monad
- Monad laws
- For a Few Monads More
- Writer? I hardly know her!
- Reader? Ugh, not this joke again.
- Tasteful stateful computations
- Error error on the wall
- Some useful monadic functions
- Making monads
- Zippers
- Taking a walk
- A trail of breadcrumbs
- Focusing on lists
- A very simple file system
- Watch your step