I just finished reading The Little Schemer for the first time. It's a wonderful little book for an introduction to the Scheme programming language.
The book starts off slowly, and is somewhat tedious, but the exercises are good, and the book quickly requires the reader to think a lot about the questions it asks. The penultimate chapter develops a derivation of the applicative order Y combinator and requires several readings to get the gist of it. I'm still not sure that I understand it. The final chapter gives an implementation of a simple Scheme interpreter written in Scheme.