exercícios cap 3 real world haskell