It is never too late to be wise. ― Daniel Defoe, Robinson Crusoe
I’ve always wanted to read through the famous SICP (Structure and Interpretation of Computer Programs) book, often heralded as one of the bibles of programming. Inspired by Eli Bendersky, I’ve decided to document my journey here on my blog in a series of posts. All these posts will be tagged #sicp
.
My current plan is to:
- Read the book (can be found online here)
- Browse through video lectures by Sussman and Abelson link
- Do most of the interesting exercises in the book
I will do all exercises and projects in Clojure instead of Scheme. Both are single-namespaced Lisps (Lisp-1s) and share many similarities. I picked Clojure since I kind of know it already and want to deepen my knowledge of it.
This reply on Quora sums the difference up well:
Clojure is a fully-powered language with the strengths and weaknesses that come of having to adhere to the JVM (though it does a great job of mostly masking this).
Scheme is a pure jewel handed down from a mountain. It is, to me, the very essence of a programming language. Even after 25 years I learn a new thing or two every now and then from Scheme.