[Haskell-beginners] How to think like a functional programmer?