/usr/share/doc/racket/stepper/index.html is in racket-doc 6.1-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"/><title>The Stepper</title><link rel="stylesheet" type="text/css" href="../scribble.css" title="default"/><link rel="stylesheet" type="text/css" href="../racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-style.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../doc-site.css" title="default"/><script type="text/javascript" src="../scribble-common.js"></script><script type="text/javascript" src="../manual-racket.js"></script><script type="text/javascript" src="../doc-site.js"></script><script type="text/javascript" src="../local-redirect/local-redirect.js"></script><script type="text/javascript" src="../local-redirect/local-user-redirect.js"></script><!--[if IE 6]><style type="text/css">.SIEHidden { overflow: hidden; }</style><![endif]--></head><body id="doc-racket-lang-org"><div class="tocset"><div class="tocview"><div class="tocviewlist tocviewlisttopspace"><div class="tocviewtitle"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,"tocview_0");">►</a></td><td></td><td><a href="" class="tocviewselflink" data-pltdoc="x">The Stepper</a></td></tr></table></div><div class="tocviewsublistonly" style="display: none;" id="tocview_0"><table cellspacing="0" cellpadding="0"><tr><td align="right">1 </td><td><a href="#%28part._.What_is_the_.Stepper_%29" class="tocviewlink" data-pltdoc="x">What is the Stepper?</a></td></tr><tr><td align="right">2 </td><td><a href="#%28part._.How_do_.I_use_the_.Stepper_%29" class="tocviewlink" data-pltdoc="x">How do I use the Stepper?</a></td></tr><tr><td align="right">3 </td><td><a href="#%28part._.How_.Does_the_.Stepper_work_%29" class="tocviewlink" data-pltdoc="x">How Does the Stepper work?</a></td></tr></table></div></div></div><div class="tocsub"><table class="tocsublist" cellspacing="0"><tr><td><span class="tocsublinknumber"></span><a href="#%28part._top%29" class="tocsubseclink" data-pltdoc="x">The Stepper</a></td></tr><tr><td><span class="tocsublinknumber">1<tt> </tt></span><a href="#%28part._.What_is_the_.Stepper_%29" class="tocsubseclink" data-pltdoc="x">What is the Stepper?</a></td></tr><tr><td><span class="tocsublinknumber">2<tt> </tt></span><a href="#%28part._.How_do_.I_use_the_.Stepper_%29" class="tocsubseclink" data-pltdoc="x">How do I use the Stepper?</a></td></tr><tr><td><span class="tocsublinknumber">3<tt> </tt></span><a href="#%28part._.How_.Does_the_.Stepper_work_%29" class="tocsubseclink" data-pltdoc="x">How Does the Stepper work?</a></td></tr></table></div></div><div class="maincolumn"><div class="main"><div class="versionbox"><span class="version">6.1</span></div><div class="navsettop"><span class="navleft"><form class="searchform"><input class="searchbox" style="color: #888;" type="text" value="...search manuals..." title="Enter a search string to search the manuals" onkeypress="return DoSearchKey(event, this, "6.1", "../");" onfocus="this.style.color="black"; this.style.textAlign="left"; if (this.value == "...search manuals...") this.value="";" onblur="if (this.value.match(/^ *$/)) { this.style.color="#888"; this.style.textAlign="center"; this.value="...search manuals..."; }"/></form> <a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot("6.1");">top</a></span><span class="navright"> <span class="nonavigation">← prev</span> <a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot("6.1");">up</a> <span class="nonavigation">next →</span></span> </div><h2 x-source-module="(lib "stepper/scribblings/stepper.scrbl")" x-part-tag=""top""><a name="(part._top)"></a><a name="(part._.The_.Stepper)"></a>The Stepper</h2><h3 x-source-module="(lib "stepper/scribblings/stepper.scrbl")" x-part-tag=""What_is_the_Stepper_"">1<tt> </tt><a name="(part._.What_is_the_.Stepper_)"></a>What is the Stepper?</h3><p>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.</p><h3 x-source-module="(lib "stepper/scribblings/stepper.scrbl")" x-part-tag=""How_do_I_use_the_Stepper_"">2<tt> </tt><a name="(part._.How_do_.I_use_the_.Stepper_)"></a>How do I use the Stepper?</h3><p>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 two panes, arranged as follows:</p><p><table cellspacing="0" cellpadding="0"><tr><td><p><span class="stt">------------------</span></p></td></tr><tr><td><p><span class="stt">|</span><span class="hspace"> </span><span class="stt">|</span><span class="hspace"> </span><span class="stt">|</span></p></td></tr><tr><td><p><span class="stt">| before -> after|</span></p></td></tr><tr><td><p><span class="stt">|</span><span class="hspace"> </span><span class="stt">|</span><span class="hspace"> </span><span class="stt">|</span></p></td></tr><tr><td><p><span class="stt">------------------</span></p></td></tr></table></p><p>The first, "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.</p><p>The second, "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. For
most reductions, the only difference between the left- and right-hand
sides should be the contents of the green and purple boxes.</p><p>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.</p><h3 x-source-module="(lib "stepper/scribblings/stepper.scrbl")" x-part-tag=""How_Does_the_Stepper_work_"">3<tt> </tt><a name="(part._.How_.Does_the_.Stepper_work_)"></a>How Does the Stepper work?</h3><p>In order to discover all of the steps that occur during the evaluation
of your code, the Stepper rewrites (or "instruments") your code.
The inserted code uses a mechanism called "continuation marks" to
store information about the program’s execution as it is running,
and makes calls to the Stepper before, after and during the evaluation
of each expression, indicating the current shape of the program.</p><p>What does this instrumented code look like? For the curious, here’s the
expanded version of <span class="RktPn">(</span><span class="RktSym">define</span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym">f</span><span class="stt"> </span><span class="RktSym">x</span><span class="RktPn">)</span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym">+</span><span class="stt"> </span><span class="RktVal">3</span><span class="stt"> </span><span class="RktSym">x</span><span class="RktPn">)</span><span class="RktPn">)</span> in the beginner
language [*]:</p><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym">module</span><span class="hspace"> </span><span class="RktSym">#%htdp</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">lib</span><span class="hspace"> </span><span class="RktVal">"lang/htdp-beginner.rkt"</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-module-begin</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">define-syntaxes</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">f</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%app</span><span class="hspace"> </span><span class="RktSym">make-first-order-function</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">procedure</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">1</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">quote-syntax</span><span class="hspace"> </span><span class="RktSym">f</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">quote-syntax</span><span class="hspace"> </span><span class="RktSym">#%app</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">define-values</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">test~object</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%app</span><span class="hspace"> </span><span class="RktSym">namespace-variable-value</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">test~object</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">begin</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">define-values</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">f</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">with-continuation-mark</span><span class="hspace"> </span><span class="RktVal">"#<debug-key-struct>"</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-lambda</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-app</span><span class="hspace"> </span><span class="RktVal">"#<procedure:...rivate/marks.rkt:70:2>"</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-app</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">call-with-values</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-lambda</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">with-continuation-mark</span><span class="hspace"> </span><span class="RktVal">"#<debug-key-struct>"</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-lambda</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-app</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVal">"#<procedure:...rivate/marks.rkt:70:2>"</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-lambda</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktSym">beginner:+</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-app</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVal">"#<procedure:closure-storing-proc>"</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-lambda</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">x</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">begin</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">let-values</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">[</span><span class="RktPn">(</span><span class="RktSym">arg0-1643</span><span class="hspace"> </span><span class="RktSym">arg1-1644</span><span class="hspace"> </span><span class="RktSym">arg2-1645</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-app</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">values</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVal">"#<*unevaluated-struct*>"</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVal">"#<*unevaluated-struct*>"</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVal">"#<*unevaluated-struct*>"</span><span class="RktPn">)</span><span class="RktPn">]</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">with-continuation-mark</span><span class="hspace"> </span><span class="RktVal">"#<debug-key-struct>"</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-lambda</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-app</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVal">"#<procedure:...rivate/marks.rkt:70:2>"</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-lambda</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktSym">beginner:+</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-lambda</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktSym">x</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-lambda</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktSym">arg0-1643</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-lambda</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktSym">arg1-1644</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-lambda</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktSym">arg2-1645</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">begin</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-app</span><span class="hspace"> </span><span class="RktVal">"#<procedure:result-exp-break>"</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">begin</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">set!</span><span class="hspace"> </span><span class="RktSym">arg0-1643</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">with-continuation-mark</span><span class="hspace"> </span><span class="RktVal">"#<debug-key-struct>"</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-lambda</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-app</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVal">"#<procedure:...rivate/marks.rkt:70:2>"</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">beginner:+</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">set!</span><span class="hspace"> </span><span class="RktSym">arg1-1644</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">with-continuation-mark</span><span class="hspace"> </span><span class="RktVal">"#<debug-key-struct>"</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-lambda</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-app</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVal">"#<procedure:...rivate/marks.rkt:70:2>"</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">3</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">set!</span><span class="hspace"> </span><span class="RktSym">arg2-1645</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">with-continuation-mark</span><span class="hspace"> </span><span class="RktVal">"#<debug-key-struct>"</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-lambda</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-app</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVal">"#<procedure:...rivate/marks.rkt:70:2>"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktSym">x</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">begin</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-app</span><span class="hspace"> </span><span class="RktVal">"#<procedure:normal-break>"</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">with-continuation-mark</span><span class="hspace"> </span><span class="RktVal">"#<debug-key-struct>"</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-lambda</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-app</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVal">"#<procedure:...rivate/marks.rkt:70:2>"</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-lambda</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktSym">arg0-1643</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-lambda</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktSym">arg1-1644</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-lambda</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktSym">arg2-1645</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">if</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-app</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVal">"#<procedure:annotated-proc?>"</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">arg0-1643</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-app</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">arg0-1643</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">arg1-1644</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">arg2-1645</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-app</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">call-with-values</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-lambda</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-app</span><span class="hspace"> </span><span class="RktSym">arg0-1643</span><span class="hspace"> </span><span class="RktSym">arg1-1644</span><span class="hspace"> </span><span class="RktSym">arg2-1645</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-lambda</span><span class="hspace"> </span><span class="RktSym">args</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-app</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVal">"#<procedure:result-value-break>"</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">args</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-app</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVal">"#<procedure:apply>"</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">values</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">args</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-lambda</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-app</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVal">"#<procedure:...rivate/marks.rkt:70:2>"</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-lambda</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktSym">beginner:+</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-lambda</span><span class="hspace"> </span><span class="RktSym">args</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-app</span><span class="hspace"> </span><span class="RktVal">"#<procedure:apply>"</span><span class="hspace"> </span><span class="RktSym">values</span><span class="hspace"> </span><span class="RktSym">args</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-app</span><span class="hspace"> </span><span class="RktVal">"#<procedure:exp-finished-break>"</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-app</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">list</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-app</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">list</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVal">"#<procedure:...ate/annotate.rkt:1256:93>"</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-lambda</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%plain-app</span><span class="hspace"> </span><span class="RktSym">list</span><span class="hspace"> </span><span class="RktSym">f</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span></td></tr><tr><td><span class="RktPn">(</span><span class="RktSym">let-values</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">[</span><span class="RktPn">(</span><span class="RktSym">done-already?</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">#f</span><span class="RktPn">]</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%app</span><span class="hspace"> </span><span class="RktSym">dynamic-wind</span><span class="hspace"> </span><span class="RktSym">void</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">lambda</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%app</span><span class="hspace"> </span><span class="RktSym">dynamic-require</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">'</span><span class="RktVal">#%htdp</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">#f</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">lambda</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">if</span><span class="hspace"> </span><span class="RktSym">done-already?</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%app</span><span class="hspace"> </span><span class="RktSym">void</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">let-values</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">set!</span><span class="hspace"> </span><span class="RktSym">done-already?</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">#t</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%app</span><span class="hspace"> </span><span class="RktSym">test*</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%app</span><span class="hspace"> </span><span class="RktSym">current-namespace</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">#%app</span><span class="hspace"> </span><span class="RktSym">module->namespace</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">'</span><span class="RktVal">#%htdp</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></blockquote><p><div class="SIntrapara">[*] : In order to allow things like </div><div class="SIntrapara"><table cellspacing="0" cellpadding="0"><tr><td><p><span class="stt">#<procedure:apply></span></p></td></tr></table></div><div class="SIntrapara"> in scribble, I’ve taken the cheap solution of wrapping them in quotes. These are not actually strings, they’re opaque 3D syntax elements.</div></p><div class="navsetbottom"><span class="navleft"><form class="searchform"><input class="searchbox" style="color: #888;" type="text" value="...search manuals..." title="Enter a search string to search the manuals" onkeypress="return DoSearchKey(event, this, "6.1", "../");" onfocus="this.style.color="black"; this.style.textAlign="left"; if (this.value == "...search manuals...") this.value="";" onblur="if (this.value.match(/^ *$/)) { this.style.color="#888"; this.style.textAlign="center"; this.value="...search manuals..."; }"/></form> <a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot("6.1");">top</a></span><span class="navright"> <span class="nonavigation">← prev</span> <a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot("6.1");">up</a> <span class="nonavigation">next →</span></span> </div></div></div><div id="contextindicator"> </div></body></html>
|