How laziness changes thinking in Haskell
newartisans.com
newartisans.com
http://www.haskell.org/haskellwiki/Foldr_Foldl_Foldl
A Haskell programmer needs to understand when non-strict evaluation can/should be avoided. foldr is usually more elegant but sometimes less efficient.
Unrelated comment: do any other Haskell fans know of a solution or debugging strategies for this problem?
Haskell's laziness is at times surprisingly cool but will also remain tricky. I sometimes compare it with lock based multi-thread programming. It can be done but also requires additional thought.
That kind of laziness? (I kid, I kid, we all know it's "I'll learn Haskell only when I have to compute something which requires me to know it. I mean, I thunk I know it.")