These days I am trying my hardest to learn Haskell.
Found these 2 great online resources Real World Haskell and Learn You a Haskell.

An attempt to solve a rather simple problem from codechef took me close to 2 days.
Not due to the lack of looping constructs..
Nor because I cannot think recursively.
But primarily due to the fact that Haskell doesn’t make it easy to mix pure and impure code.
It took me quite a while to understand that a little monadic constructs such as mapM, forM exists. And the let bindings for sprinkling pure code in between impure code.