List of topics
Here is a list of topics we may want to cover. It is not final, we can add or remove
topics before we start or even on the fly.
We’ll skim over some topics if they are familiar or less of interest based of the feedback.
The order may also change.
Hello world
- Ensure everybody has environment set up
- Learn how to use interpreter
- Basics of I/O to ensure we can print something to stdout
- Where to find docs
Algebraic data type and functions
- What exactly they are
- How to define them
- Pattern matching
- How to define functions
- Structural recursion, tail recursion
- Lazy evaluation
Polymorphism
- Parametric polymorphism
- Ad-hoc polymorphism
- Type classes
- Some standard type classes: Show, Read, Num, Monoid, Semigroup
Referential transparency
- Property testing
- Referential transparency
- Equation reasoning
Functor
- Functor typeclass
- Common instances: Maybe, Either, [], IO, (->)
Applicative and Monad
- Applicative type class
- Monad type class
- Common instances: Maybe, Either, [], IO, (->)
In short
- Concurrency
- Software transaction memory
- Parallel strategies
- Asynchronous exception