What I cannot create, I do not understand.

Just because you've implemented something, doesn't mean you understand it.

laziness, Stack Overflow

I had said that learning Haskell would be an interesting diversion from Scheme (it has been), and mentioned Haskell’s lazy evaluation. When I wrote that I meant in contrast to Scheme’s strict evaluation, because I thought that was the strategy that Scheme uses, which is true: that’s the default in Scheme. However while browsing the Haskell tag on Stack Overflow, I came across a comment which lead me to search for “Scheme lazy evaluation” and to reading about delaying evaluation with the “delay” keyword, as well as creating a thunk by passing a function literal which will evaluate the expression you want to delay when it is called.

Here’s a clear example from StackOverflow:

http://stackoverflow.com/questions/925365/what-is-a-thunk-as-used-in-scheme-o…

Speaking of SO, here’s a really tremendous answer to one of the many “how to I learn language X” in regards to Haskell:

http://stackoverflow.com/questions/1012573/how-to-learn-haskell/1016986#1016986

Such a trove of links and resources. While browsing SO I also discovered that one of the author’s of Real World Haskell is really active on the site, which is awesome.

http://stackoverflow.com/users/83805/don-stewart