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:


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


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.