Warning: spoilers
This is my attempt at learning Haskell from first principles. I deliberately (also a bit out or laziness) am not using standard functions, which I am sure exist for much of what I'm doing. I'm also not trying to be too clever; for example, there is a simple closed-form formula for problem 1 which I didn't apply because that wouldn't help me learn Haskell.
Operating instructions: run.sh <problem-number>
compiles (using GHC) and runs the given program.