The Little Schemer series of books present material in an unusual, yet highly effective way by combining playfulness with the seriousness of the topic presented. The reader hardly notices any effort required in understanding the concepts presented. These are the kinds of technical books that one can truly enjoy reading. This article will list the books in the series.
The list of books based on Scheme:
The Little Schemer
This is the first books in the series. Introduces a subset of Scheme, with heavy emphasis on recursion, and ends with what can be considered a minimal Scheme interpreter. The programs are all in functional style (assignment and mutation is not yet introduced).
The Seasoned Schemer
This is the second book. It is considered as the sequel to The Little Schemer.
The Reasoned Schemer
Logic programming by extending Scheme with logical constructs. Captures the essence of logic programming that can be used in Prolog.
The Little Prover
The Little Prover explores how one can prove the correctness of programs through the writing of inductive proofs. A proof assistant is included. The best thing is that this can be read right after The Little Schemer.
The Little Typer
The Little Typer is an upcoming book about dependent types. Dependent types are introduced using Pie, a small language used in the book. Pie runs on Racket. Looking forward to the official release of this book!
Based on languages other than Scheme:
The Little MLer
In contrast with the texts that use Scheme, which is an untyped functional language, The Little MLer uses a strictly typed functional language, Standard ML. With some modifications suggested by the authors, the OCaml language can also be used to follow the text.
A Little Java, A Few Patterns
Deals with design patterns in an object oriented language. Uses Java.
For the books that use Scheme, I use the MIT Scheme implementation to run the code. Alternatively, one could use Racket. The implementation used does not really matter, because the subset of Scheme presented will likely produce the same results across implementations.
For Standard ML, I would suggest using Standard ML of New Jersey (SML/NJ), because it comes with a REPL, which is handy for trying out ideas quickly.