What I cannot create, I do not understand.

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

The Wizard Book

I just finished watching the the first lecture from the Structure and Interpretation of Computer Programs chapter on streams (chapter 3, section 5). I felt compelled to post and once again highlight my naivete when I wrote about Haskell’s laziness compared to Scheme, because the lecture (and the chapter in the text, I’m sure. I’m about to sit down for the reading.) discusses the implementation of lazily evaluated streams of data.

SICP is a fascinating book. It’s so good, it makes me want to press it into freshman CS students’ and fellow Blub programmers’ hands. I know MIT has moved their introductory course to robotics and Python, and I won’t attempt to judge them for it, but the book and lectures are still incredibly engaging. I wish I had found it sooner, when I was still a student, but I guess it’s better late than never. Maybe the reason I’m so enthralled with it is exactly because I went through a rather mundane, Java-centric curriculum. Anyway, if anyone is reading this and has been on the fence about reading SICP, here’s another Internet soul urging you to just go start. You have no excuse: it’s free!