Every now and then we'll dip below the language level, and tell you how most actual implementations of the language work. We do not start from a functional programming perspective that pretends that Scheme executes by rewriting expressions. We take Scheme to be a special case of a weakly object-oriented procedural language. Some people may not like this approach, since we start talking about state and assignment very early. While we agree that mostly-functional programming is usually the right thing for Scheme, our intent is to make the semantics of the language clear early on, and to make it clear to new Schemers that Scheme is a fairly normal programming language, even if it is unusually clean and expressive.
Style is discussed later, when alternatives are clearer.
If you've ever tried to learn Lisp or Scheme before, but not gotten very far, this book may be for you. Many people take to Lisp or Scheme like ducks to water. In this book, we try to explain things a little differently than they're usually explained, to avoid the problems that some people have learning from most of the existing books. The concreteness of the explanations here may help overcome the unfamiliarity of these languages. Scheme is really just a normal programming language, but one with powerful features that can be used in special ways, too.