What is the _Stepper_?

DrRacket includes an "algebraic stepper," a tool which proceeds
through the evaluation of a set of definitions and expressions,
one step at a time. This evaluation shows the user how DrRacket
evaluates expressions and definitions, and can help in debugging
programs.  Currently, the Stepper is available in the "Beginning
Student" and "Intermediate Student" language levels.

How do I use the Stepper?

The Stepper operates on the contents of the frontmost DrRacket
window.  A click on the "Step" button brings up the stepper
window.  The stepper window has four panes, arranged as follows:

------------------
|    finished    |
------------------
|before ->  after|
------------------
|     coming     |
------------------

The first, "finished," box shows definitions and expressions
whose evaluation is complete. This box is changed only when
another completed evaluation's result is added to it.

The second, "before," box, shows the current expression.  The
region highlighted in green is known as the "redex".  You may
pronounce this word in any way you want.  It is short for
"reducible expression," and it is the expression which is the
next to be simplified.

The third, "after," box shows the result of the reduction.  The
region highlighted in purple is the new expression which is
substituted for the green one as a result of the reduction.

Finally, the fourth box, labeled "coming" above, shows new
expressions introduced by prior reductions which have yet to be
reduced. As an example, a "local" expression may result in many
new definitions which require reduction.  The definitions which
have not yet been evaluated appear in the "coming" box.

There are three buttons at the top of the stepper window.  The
"Home" button returns to the initial state of the evaluation: that
is, no expressions have yet been evaluated.  The "Previous"
button returns to the prior step of the evaluation.  The "Next"
step shows the next step in the evaluation.

For more information on how DrRacket selects a "redex" and how
the expressions are reduced, please see The Beginner Language
Semantics which formally specify the set of rules governing
the language's evaluation.

Please note that the stepper only steps through the expressions
in the definitions window, and does not allow the user to enter
additional expressions.  So, for instance, a definitions buffer
which contains only procedure definitions will not result in
any reductions.
