[Haskell-beginners] some insights into functional programming