Which language would you use for the self-study of SICP?

Alan picture Alan · Oct 27, 2008 · Viewed 7.9k times · Source

I've caught the bug to learn functional programming for real. So my next self-study project is to work through the Structure and Interpretation of Computer Programs. Unfortunately, I've never learned Lisp, as I was not a CS major in college.

While SICP does not emphasize the tools for programming, doing the exercises entails picking a Lisp-like language to use. It seems like some implementation of Scheme would be the path of least resistance. On the other hand, I hear of others who have used Common Lisp and Clojure. It seems to me that Common Lisp or Clojure would be more likely to be used in production code, and therefore slightly better for my resume. BTW, I fully get the argument that learning a language is worthwhile for its own sake, but learning a language that helps my resume is still a benefit. I'm a capitalist and an academic about my learning.

If you had to self-study SICP, which language would you pick and why? Ideally, I would like to use a language that can run on the JVM. I can certainly work with a language where REPL works with bash and emacs.

ADDITION: have any of you tried reading SICP without using Scheme? If so, what was your experience like?

Answer

Andru Luvisi picture Andru Luvisi · Oct 27, 2008

Use Scheme. It is one of the simplest and easiest languages in existence, and you will spend very little time learning enough of it to understand SICP. Once you understand SICP, you will see how the concepts apply in any language.