Ask HN: Which Scheme book to read?

16 points by sophiebits ↗ HN
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 ] thread
From my own personal experiences, try "How to Design Programs" (HTDP) by Felleisen et al as an introduction to Scheme. Its a great educational book which really prepares you for SICP.

Also 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.

I have not read SICP, but I have read The Little Schemer. It's my favorite programming book.

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/.

I would recommend you start with The Little Schemer and follow up with The Seasoned Schemer (the sequel to the other book). These two will give you a good feel for some aspects of Scheme programming, but they will not go into the same depth about the fundamentals of computer science you'll get from SICP. After reading them, then you should advance to either How To Design Programs as suggested before SICP or if you're feeling really ambitious jump right to SICP.
If you have little programming experience, I'd start with The Little Schemer. It's short and concise. Plus, I think you'll have more fun with The Little Schemer.

Disclaimer: I've never read SICP.

I suggest Practical Common Lisp. (considering that it's both online and in book form)
Just for an alternate opinion:

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:

  $ sudo apt-get install mzscheme
  $ mzscheme
  > (print "hello world")
Then Google for increasingly complex programs.
SICP isn't so much about Scheme, but language design principles, the beauty of abstraction, the dangers of mutable state, and the inability of a reactionary, functional approach to compensate for the lack of a mutable state.

But I would still go with SICP.

I second that. Sicp, though, is quite hard conceptually (for instance, I've been baffled by church numerals and the y combinator), but in a good way. You may want to read something more entry-level before, though.