Monolune

The Little Schemer series of books

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.