learning haskell through solving the project euler problems