DrScheme supports two forms of extension to the programming
extends the set of procedures that are built into a language in DrScheme.
For example, a teachpack might extend the Beginning Student language with
a procedure for playing sounds.
Teachpacks are particularly useful in a classroom setting, where an
instructor can provide a teachpack that is designed for a specific
exercise. To use the teachpack, each student must download the teachpack
file and select it through the Language|Add Teachpack...
A tool extends the set of utilities within
the DrScheme environment. For example, DrScheme's Check Syntax
button starts a syntax-checking tool, and the Analyze button starts
the MrSpidey tool.
Teachpacks are designed to supplement student programs with code that is
beyond the teaching languages (Beginning Student, Intermediate Student, Advanced Student). For
example, to enable students to play hangman, we supply a teachpack that
implements the random choosing of a word
maintains the state variable of how many guesses have gone wrong
manages the GUI.
All these tasks are beyond students in the third week and/or impose
memorization of currently useless knowledge on students. The essence
of the hangman game, however, is not. The use of teachpacks enables the
students to implement the interesting part of this
exercise and still be able to enjoy today's graphics without the useless
A single Scheme source file defines a teachpack (although
the file may access other files via require). The
file must contain a module, according to the naming
convention laid out in the MzScheme manual (the name of the
file must be the name of the module, with an additional .scm or .ss extension on the filename). Each
exported syntax definition or value definition from the
module is provided as a new primitive form or primtive
operation to the user, respectively.
As an example example, the following teachpack provides a
lazy cons implementation. To test it, be sure to save it in
a file named lazycons.scm.
This section lists the environment variables that affect
DrScheme's behavior. See the MzScheme
manual for general information about
PLTNOTOOLS When this environment variable is set,
DrScheme doesn't load any tools.
PLTONLYTOOL When this environment variable is
set, DrScheme only loads the tools in the collection named
by the value of the environment variable.
PLTDRCM When this environment variable is set,
DrScheme installs the compilation manager before starting
up, which means that the .zo files are automatically kept up
to date, as DrScheme's (or a tools) source is modified.
PLTDRDEBUG When this environment variable is set,
DrScheme starts up with errortrace enabled. If the variable
is set to profile, DrScheme also records profiling
information about itself.