This is a collection of homework problems created to teach the Haskell for Beginners class at The Hacklab @ North Boynton. The problems follow the text for the class, Learn You a Haskell for Great Good!, chapter by chapter. Each problem file has problems intended to exercise the knowledge learned in just one section heading of the chapter that it is in. The chapter numbers given below follow those for the online text. If you are using the physical text, the chapter numbers in the book lag behind by one until you get to chapter 10. Chapters 8 and 9 in the together cover the the context of chapter 9 online.
In addition there is a small midterm project to be completed after Chapter 8.
Chapter 1 - Introduction
Chapter 2 - Starting Out
Chapter 3 - Types and Typeclasses
Chapter 4 - Syntax in Functons
Chapter 5 - Recursion
Chapter 6 - Higher Order Functions
- Curried functions
- Some higher-orderism is in order
Chapter 6 - Higher Order Functions
- Maps and filters
- Lambdas
- Only folds and horses
- Function application with $
- Function composition
Chapter 7 - Modules
Chapter 8 - Making Our Own Types and Typeclasses
- Up to and including beginning of Kinds
- Type-foo section of Kinds is not included
Implement a simple text adventure engine.
Chapter 9 - Input and Output
- Hello, World!
- Files and streams
- Up to (not including) Avril Lavigne
Chapter 9 - Input and Output
- File and streams
- From Avril Lavigne on
- Command Line Arguments
- Randomness
- Bytestrings (Exceptions are skipped)
Chapter 10 - Functionally Solving Problems
Code Week! Work on any programming problems you can find on the internet and bring your questions to class.
- http://www.haskell.org/haskellwiki/H-99:_Ninety-Nine_Haskell_Problems
- http://projecteuler.net/
- http://programmingpraxis.com/contents/chron/
- http://codekata.pragprog.com/2007/01/code_kata_backg.html
- http://www.codequizzes.com/
- http://rubyquiz.strd6.com/
Chapter 11 - Applicative Funtors
- Functors Redux
- Applicative Functors
Chapter 11 - Applicative Funtors (monoids)
- The Newtype Keyword
- Monoids
Chapter 12 - A Fistful of Monads
Chapter 13 - For a Few Monads More
To the intrepid students who allowed themselves to be experiment on in the course and helped shape the homework problems.
from L to R, top to bottom
- David Blackmon
- Eden Delgado
- David Vollbracht (instructor)
- Patrick Kennedy
- David Vitrant