A good Haskell book that I had been learning the language in: 'Programming in Haskell' by Graham Hutton (second edition):headpat:
If you're curious about lazy evaluation in Haskell, there are generally three ways of reducing an expression you might see: call-by-value, call-by-name, and finally...