A course is a series of lessons (with text, code, and sometimes video) that leads you through a particular topic. The courses are supplemented by links to our Haskell reference articles which provide more in-depth coverage of any topics a course touches on briefly. Some courses focus on a particular problem, showing multiple ways to handle it, while teaching you Haskell in the process. Others look at a topic such as functors and guide you to a deep but practical understanding.
Functortown: A Map of the Territory
The Functortown Functortown
9 lessons course is a tour of the entire functor family in Haskell and explores their relationships and differences. Each functor class is introduced via a motivating example, instances and usage examples are explored in detail, and we’ll use a property testing library to learn about the laws of each class. This will be a long course, covering seven important typeclasses.
Web Servers, at a low level
The Web Servers course Web Servers
6 videos; 49 minutes starts by discussing what HTTP and web servers are and follows the HTTP specification in building a Haskell web server from scratch. This includes explaining different character encodings and the differences between the Haskell
4 lessons is a course that aims to highlight an underhyped corner of Haskell’s ecosystem: libraries for making native GUI applications. We’ll work on building clocks, with different libraries and different tweaks, so we can compare the features and pain points (if any) of all the libraries we try out.
The Validation course Validation
9 videos: 150 minutes starts from basic conditional statements and pattern matching. We then build a suite of functions to validate user inputs, refactoring along the way to see what benefits using
Validation types brings, as well as using
newtype to differentiate inputs. We also gain a practical understanding of the difference between
NixOS on AWS
NixOS on AWS NixOS on AWS
5 videos; 36 minutes shows how we deploy our site to EC2 using NixOS. In addition to showing what Nix can do, we also take the opportunity to teach some Haskell by writing our deploy script in Haskell using the Turtle library.