The text describes an approach to writing a crisp
and utilitarian Scheme. Although we will not cover
Scheme from abs
to zero?
, we will not shy away
from those aspects of the language that are difficult,
messy, nonstandard, or unusual, but nevertheless useful
and usable. Such aspects include
call-with-current-continuation
, system
interface, and dialect diversity. Our
discussions will be informed by our focus on
problem-solving, not by a quest for metalinguistic
insight. I have therefore left out many of the staples
of traditional Scheme tutorials. There will be no
in-depth pedagogy; no dwelling on the semantic appeal
of Scheme; no metacircular interpreters; no discussion
of the underlying implementation;
and no evangelizing about Scheme's virtues. This is
not to suggest that these things are unimportant.
However, they are arguably not immediately relevant to
someone seeking a quick introduction.
How quick though? I do not know if one can teach oneself Scheme in 21 days1, although I have heard it said that the rudiments of Scheme should be a matter of an afternoon's study. The Scheme standard [22] itself, for all its exacting comprehensiveness, is a mere fifty pages long. It may well be that the insight, when it comes, will arrive in its entirety in one afternoon, though there is no telling how many afternoons of mistries must precede it. Until that zen moment, here is my gentle introduction.
--d
1 A fixnum is a machine's idea of a ``small'' integer. Every machine has its own idea of how big a fixnum can be.