Haskell for Beginners
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.
Week 1
Chapter 1 - Introduction
Week 2
Chapter 2 - Starting Out
Week 3
Chapter 3 - Types and Typeclasses
Week 4
Chapter 4 - Syntax in Functons
Week 5
Chapter 5 - Recursion
Chapter 6 - Higher Order Functions
- Curried functions
- Some higher-orderism is in order
Week 6
Chapter 6 - Higher Order Functions
- Maps and filters
- Lambdas
- Only folds and horses
- Function application with $
- Function composition
Week 7
Chapter 7 - Modules
Week 8
Chapter 8 - Making Our Own Types and Typeclasses
- Up to and including beginning of Kinds
- Type-foo section of Kinds is not included
Midterm
Implement a simple text adventure engine.
Week 9
Chapter 9 - Input and Output
- Hello, World!
- Files and streams
- Up to (not including) Avril Lavigne
Week 10
Chapter 9 - Input and Output
- File and streams
- From Avril Lavigne on
- Command Line Arguments
- Randomness
- Bytestrings (Exceptions are skipped)
Week 11
Chapter 10 - Functionally Solving Problems
Week 12
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/
Week 13
Chapter 11 - Applicative Funtors
- Functors Redux
- Applicative Functors
Week 14
Chapter 11 - Applicative Funtors (monoids)
- The Newtype Keyword
- Monoids
Week 15
Chapter 12 - A Fistful of Monads
Week 16
Chapter 13 - For a Few Monads More
Special Thanks
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