Ask HN: Which Scheme book to read?
I'm a high-school student interested in programming and I'm trying to decide between The Little Schemer and SICP (Structure and Interpretation of Computer Programs). Haven't really found any comparison anywhere and both books seem to have many fans online. Does anyone here have experience with both that you can give me? (Or is there a different one I haven't heard of? Or a book about some other dialect of Lisp?)
Thanks!
Edit: I have a fairly good grasp of C and Ruby, and I know some Java (enough for a 5 on the AP CompSci AB test, at least), so it's not my first time learning to program.
13 comments
[ 5.2 ms ] story [ 38.9 ms ] threadAlso if you want to give Common Lisp a try, I'd highly recommend "Common Lisp: A Gentle Introduction to Symbolic Computation" by David S. Touretzky. Its an old book but well worth its price in gold. It is the simplest way to really get Common Lisp and its concepts.
Also, read this: http://norvig.com/21-days.html
If does a very good job of getting you comfortable with thinking recursively. It not meant to impart immediate 'practical' knowledge, and it really uses Scheme as a vehicle for teaching recursion, not the other way around. You can do the exercises in any Lisp dialect easily enough, and even in JavaScript (http://javascript.crockford.com/little.html).
My recommendation would be to use The Little Schemer as well as another, more practically focused book on Scheme or Lisp and work through them concurrently.
Also, if you're just getting started and are going to be using Scheme, the DrScheme mini-IDE makes it very easy to get started quickly. It's part of the PLT-Scheme package: http://www.plt-scheme.org/.
Disclaimer: I've never read SICP.
I find programming books relatively valueless. Just start reading code and programming. Google when you don't understand a piece of code.
Approximately how to get started on an Ubuntu system:
Then Google for increasingly complex programs.But I would still go with SICP.
That's the best 20-hour introduction you could ask for.
I often use Scheme when I teach compilers, and I've got a few Scheme-related blog posts designed for the curious student:
* Church encodings: http://matt.might.net/articles/church-encodings-demo-in-sche...
* Macro-generating macros: http://matt.might.net/articles/implementation-of-scheme-vect...
* Programming with continuations: http://matt.might.net/articles/programming-with-continuation...