This file is indexed.

/usr/share/doc/racket/plai/plai-scheme.html is in racket-doc 6.7-3.

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<!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>1&nbsp;PLAI Scheme</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,&quot;tocview_0&quot;);">&#9660;</a></td><td></td><td><a href="index.html" class="tocviewlink" data-pltdoc="x"><span style="font-style: italic">Programming Languages:<span class="mywbr"> &nbsp;</span> Application and Interpretation</span></a></td></tr></table></div><div class="tocviewsublisttop" style="display: block;" id="tocview_0"><table cellspacing="0" cellpadding="0"><tr><td align="right">1&nbsp;</td><td><a href="" class="tocviewselflink" data-pltdoc="x">PLAI Scheme</a></td></tr><tr><td align="right">2&nbsp;</td><td><a href="collector.html" class="tocviewlink" data-pltdoc="x">GC Collector Scheme</a></td></tr><tr><td align="right">3&nbsp;</td><td><a href="mutator.html" class="tocviewlink" data-pltdoc="x">GC Mutator Scheme</a></td></tr><tr><td align="right">4&nbsp;</td><td><a href="gc2-collector.html" class="tocviewlink" data-pltdoc="x">GC Collector Language, 2</a></td></tr><tr><td align="right">5&nbsp;</td><td><a href="gc2-mutator.html" class="tocviewlink" data-pltdoc="x">GC Mutator Language, 2</a></td></tr><tr><td align="right">6&nbsp;</td><td><a href="Generating_Random_Mutators.html" class="tocviewlink" data-pltdoc="x">Generating Random Mutators</a></td></tr><tr><td align="right">7&nbsp;</td><td><a href="web.html" class="tocviewlink" data-pltdoc="x">Web Application Scheme</a></td></tr></table></div></div><div class="tocviewlist"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,&quot;tocview_1&quot;);">&#9658;</a></td><td>1&nbsp;</td><td><a href="" class="tocviewselflink" data-pltdoc="x">PLAI Scheme</a></td></tr></table><div class="tocviewsublistbottom" style="display: none;" id="tocview_1"><table cellspacing="0" cellpadding="0"><tr><td align="right">1.1&nbsp;</td><td><a href="#%28part._define-type%29" class="tocviewlink" data-pltdoc="x">Defining Types:<span class="mywbr"> &nbsp;</span> <span class="RktSym"><span class="RktStxLink">define-<wbr></wbr>type</span></span></a></td></tr><tr><td align="right">1.2&nbsp;</td><td><a href="#%28part._type-case%29" class="tocviewlink" data-pltdoc="x">Deconstructing Data Structures:<span class="mywbr"> &nbsp;</span> <span class="RktSym"><span class="RktStxLink">type-<wbr></wbr>case</span></span></a></td></tr><tr><td align="right">1.3&nbsp;</td><td><a href="#%28part._testing%29" class="tocviewlink" data-pltdoc="x">Testing Infrastructure</a></td></tr></table></div></div></div><div class="tocsub"><div class="tocsubtitle">On this page:</div><table class="tocsublist" cellspacing="0"><tr><td><span class="tocsublinknumber">1.1<tt>&nbsp;</tt></span><a href="#%28part._define-type%29" class="tocsubseclink" data-pltdoc="x">Defining Types:<span class="mywbr"> &nbsp;</span> <span class="RktSym"><span class="RktStxLink">define-<wbr></wbr>type</span></span></a></td></tr><tr><td><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._define-type%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktStxLink">define-<wbr></wbr>type</span></span></a></td></tr><tr><td><span class="tocsublinknumber">1.2<tt>&nbsp;</tt></span><a href="#%28part._type-case%29" class="tocsubseclink" data-pltdoc="x">Deconstructing Data Structures:<span class="mywbr"> &nbsp;</span> <span class="RktSym"><span class="RktStxLink">type-<wbr></wbr>case</span></span></a></td></tr><tr><td><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._type-case%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktStxLink">type-<wbr></wbr>case</span></span></a></td></tr><tr><td><span class="tocsublinknumber">1.3<tt>&nbsp;</tt></span><a href="#%28part._testing%29" class="tocsubseclink" data-pltdoc="x">Testing Infrastructure</a></td></tr><tr><td><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._test%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktStxLink">test</span></span></a></td></tr><tr><td><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._test%2Fpred%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktStxLink">test/<span class="mywbr"> &nbsp;</span>pred</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._plai%2Fmain..rkt%29._error%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">error</span></span></a></td></tr><tr><td><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._test%2Fexn%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktStxLink">test/<span class="mywbr"> &nbsp;</span>exn</span></span></a></td></tr><tr><td><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._test%2Fregexp%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktStxLink">test/<span class="mywbr"> &nbsp;</span>regexp</span></span></a></td></tr><tr><td><span class="tocsublinknumber">1.3.1<tt>&nbsp;</tt></span><a href="#%28part._.Test_.Flags%29" class="tocsubseclink" data-pltdoc="x">Test Flags</a></td></tr><tr><td><a href="#%28def._%28%28lib._plai%2Fmain..rkt%29._abridged-test-output%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">abridged-<wbr></wbr>test-<wbr></wbr>output</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._plai%2Fmain..rkt%29._plai-catch-test-exn%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">plai-<wbr></wbr>catch-<wbr></wbr>test-<wbr></wbr>exn</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._plai%2Fmain..rkt%29._halt-on-errors%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">halt-<wbr></wbr>on-<wbr></wbr>errors</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._plai%2Fmain..rkt%29._print-only-errors%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">print-<wbr></wbr>only-<wbr></wbr>errors</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._plai%2Fmain..rkt%29._test-inexact-epsilon%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">test-<wbr></wbr>inexact-<wbr></wbr>epsilon</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._plai%2Fmain..rkt%29._plai-ignore-exn-strings%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">plai-<wbr></wbr>ignore-<wbr></wbr>exn-<wbr></wbr>strings</span></span></a></td></tr><tr><td><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._plai-all-test-results%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktStxLink">plai-<wbr></wbr>all-<wbr></wbr>test-<wbr></wbr>results</span></span></a></td></tr></table></div></div><div class="maincolumn"><div class="main"><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, &quot;6.7&quot;, &quot;../&quot;);" onfocus="this.style.color=&quot;black&quot;; this.style.textAlign=&quot;left&quot;; if (this.value == &quot;...search manuals...&quot;) this.value=&quot;&quot;;" onblur="if (this.value.match(/^ *$/)) { this.style.color=&quot;#888&quot;; this.style.textAlign=&quot;center&quot;; this.value=&quot;...search manuals...&quot;; }"/></form>&nbsp;&nbsp;<a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot(&quot;6.7&quot;);">top</a></span><span class="navright">&nbsp;&nbsp;<a href="index.html" title="backward to &quot;Programming Languages: Application and Interpretation&quot;" data-pltdoc="x">&larr; prev</a>&nbsp;&nbsp;<a href="index.html" title="up to &quot;Programming Languages: Application and Interpretation&quot;" data-pltdoc="x">up</a>&nbsp;&nbsp;<a href="collector.html" title="forward to &quot;2 GC Collector Scheme&quot;" data-pltdoc="x">next &rarr;</a></span>&nbsp;</div><h3 x-source-module="(lib &quot;plai/scribblings/plai.scrbl&quot;)" x-source-pkg="plai-doc" x-part-tag="&quot;plai-scheme&quot;">1<tt>&nbsp;</tt><a name="(part._plai-scheme)"></a><a name="(mod-path._plai)"></a>PLAI Scheme</h3><p><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left"><span class="hspace">&nbsp;</span><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=guide&amp;rel=Module_Syntax.html%23%2528part._hash-lang%2529&amp;version=6.7" class="RktModLink Sq" data-pltdoc="x"><span class="RktMod">#lang</span></a><span class="hspace">&nbsp;</span><a href="" class="RktModLink" data-pltdoc="x"><span class="RktSym">plai</span></a></td><td align="right"><span class="RpackageSpec"><span class="Smaller">&nbsp;package:</span> <span class="stt">plai-lib</span></span></td></tr></table></p><p>PLAI Scheme is derived from the <a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=scheme&amp;rel=scheme.html&amp;version=6.7" class="RktModLink Sq" data-pltdoc="x"><span class="RktSym">scheme</span></a> language.  In addition,
it includes the <span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._define-type%29%29" class="RktStxLink" data-pltdoc="x">define-type</a></span> and <span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._type-case%29%29" class="RktStxLink" data-pltdoc="x">type-case</a></span> forms and testing
support. Also, modules written in <a href="" class="RktModLink" data-pltdoc="x"><span class="RktSym">plai</span></a> export every definition
(unlike <a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=scheme&amp;rel=scheme.html&amp;version=6.7" class="RktModLink Sq" data-pltdoc="x"><span class="RktSym">scheme</span></a>).</p><h4 x-source-module="(lib &quot;plai/scribblings/plai.scrbl&quot;)" x-source-pkg="plai-doc" x-part-tag="&quot;define-type&quot;">1.1<tt>&nbsp;</tt><a name="(part._define-type)"></a>Defining Types: <span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._define-type%29%29" class="RktStxLink" data-pltdoc="x">define-type</a></span></h4><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>syntax</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(form._((lib._plai/main..rkt)._define-type))"></a><span title="Provided from: plai | Package: plai-lib"><span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._define-type%29%29" class="RktStxDef RktStxLink" data-pltdoc="x">define-type</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">type-id</span><span class="hspace">&nbsp;</span><span class="RktVar">variant</span><span class="hspace">&nbsp;</span><span class="RktMeta">...</span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._define-type%29%29" class="RktStxDef RktStxLink" data-pltdoc="x">define-type</a></span><span class="hspace">&nbsp;</span><span class="RktVar">type-id</span><span class="hspace">&nbsp;</span><span class="RktPn">#:immutable</span><span class="hspace">&nbsp;</span><span class="RktVar">variant</span><span class="hspace">&nbsp;</span><span class="RktMeta">...</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">&nbsp;</span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="specgrammar"><tr><td align="right" valign="baseline"><span class="RktVar">variant</span></td><td align="left" valign="baseline"><span class="stt">&nbsp;</span></td><td align="center" valign="baseline">=</td><td align="left" valign="baseline"><span class="stt">&nbsp;</span></td><td align="left" valign="baseline"><span class="RktPn">(</span><span class="RktVar">variant-id</span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktVar">field-id</span><span class="hspace">&nbsp;</span><span class="RktVar">contract-expr</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span><span class="RktMeta">...</span><span class="RktPn">)</span></td></tr></table></td></tr></table></blockquote></div><div class="SIntrapara">Defines the datatype <span class="RktVar">type-id</span>.  A constructor <span class="RktVar">variant-id</span> is
defined for each variant.  Each constructor takes an argument for each field of
its variant.</div></p><p>The value of each field is checked by its associated <span class="RktVar">contract-expr</span>.
A <span class="RktVar">contract-expr</span> may be an arbitrary predicate or a contract.</p><p>If the <span class="RktPn">#:immutable</span> option is provided, the constructors create
immutable structs. Otherwise, they can be mutated.</p><p>In addition to the constructors, a <span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._define-type%29%29" class="RktStxLink" data-pltdoc="x">define-type</a></span> expression also defines:</p><ul><li><p>a predicate <span class="RktVar">type-id?</span> that returns <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=booleans.html%23%2528def._%2528%2528lib._racket%252Fbool..rkt%2529._true%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">true</a></span> for instances
of the datatype, and <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=booleans.html%23%2528def._%2528%2528lib._racket%252Fbool..rkt%2529._false%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">false</a></span> for any other value,</p></li><li><p>for each variant, a predicate <span class="RktVar">variant-id?</span> that returns
<span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=booleans.html%23%2528def._%2528%2528lib._racket%252Fbool..rkt%2529._true%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">true</a></span> when applied to a value of the same variant and
<span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=booleans.html%23%2528def._%2528%2528lib._racket%252Fbool..rkt%2529._false%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">false</a></span> for any other value,</p></li><li><p>for each field of each variant, an accessor
<span class="RktVar">variant-id-field-id</span> that returns the value of the field, and</p></li><li><p>unless the <span class="RktPn">#:immutable</span> option is provided, for each field of
each variant, <span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._define-type%29%29" class="RktStxLink" data-pltdoc="x">define-type</a></span> also defines a mutator
<span class="RktVar">set-variant-id-field-id!</span> that sets the value of the field.</p></li></ul><h4 x-source-module="(lib &quot;plai/scribblings/plai.scrbl&quot;)" x-source-pkg="plai-doc" x-part-tag="&quot;type-case&quot;">1.2<tt>&nbsp;</tt><a name="(part._type-case)"></a>Deconstructing Data Structures: <span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._type-case%29%29" class="RktStxLink" data-pltdoc="x">type-case</a></span></h4><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>syntax</p></div></div><table cellspacing="0" cellpadding="0" class="RktBlk RForeground"><tr><td><span class="RktPn">(</span><a name="(form._((lib._plai/main..rkt)._type-case))"></a><span title="Provided from: plai | Package: plai-lib"><span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._type-case%29%29" class="RktStxDef RktStxLink" data-pltdoc="x">type-case</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">datatype-id</span><span class="hspace">&nbsp;</span><span class="RktVar">expr</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;</span><span class="RktVar">branch</span><span class="hspace">&nbsp;</span><span class="RktMeta">...</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="stt">&nbsp;</span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="specgrammar"><tr><td align="right" valign="baseline"><span class="RktVar">branch</span></td><td align="left" valign="baseline"><span class="stt">&nbsp;</span></td><td align="center" valign="baseline">=</td><td align="left" valign="baseline"><span class="stt">&nbsp;</span></td><td align="left" valign="baseline"><span class="RktPn">(</span><span class="RktVar">variant-id</span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktVar">field-id</span><span class="hspace">&nbsp;</span><span class="RktMeta">...</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span><span class="RktVar">result-expr</span><span class="hspace">&nbsp;</span><span class="RktMeta">...</span><span class="RktPn">)</span></td></tr><tr><td align="right" valign="baseline"><span class="stt">&nbsp;</span></td><td align="left" valign="baseline"><span class="stt">&nbsp;</span></td><td align="center" valign="baseline">|</td><td align="left" valign="baseline"><span class="stt">&nbsp;</span></td><td align="left" valign="baseline"><span class="RktPn">(</span><span class="RktVar">else</span><span class="hspace">&nbsp;</span><span class="RktVar">result-expr</span><span class="hspace">&nbsp;</span><span class="RktMeta">...</span><span class="RktPn">)</span></td></tr></table></td></tr></table></blockquote></div><div class="SIntrapara">Branches on the datatype instance produced by <span class="RktVar">expr</span>, which must be an
instance of <span class="RktVar">datatype-id</span> (previously defined with
<span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._define-type%29%29" class="RktStxLink" data-pltdoc="x">define-type</a></span>) Each <span class="RktVar">branch</span> extracts the values of the fields,
and binds them to <span class="RktVar">field-id</span><span class="stt"> </span><span class="RktMeta"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=stx-patterns.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fstxcase-scheme..rkt%2529._......%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x">...</a></span>.</div></p><p>If a branch is not specified for each variant, you may use an <span class="RktVar">else</span>
branch to create a catch-all branch.  An <span class="RktVar">else</span> branch must be the last
branch in the sequence of branches.  <span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._type-case%29%29" class="RktStxLink" data-pltdoc="x">type-case</a></span> signals a compile-time
error if all variants are not covered and the <span class="RktVar">else</span> branch is missing.
Similarly, <span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._type-case%29%29" class="RktStxLink" data-pltdoc="x">type-case</a></span> signals a compile-time error if an <span class="RktVar">else</span>
branch is unreachable because a branch exists for all variants.</p><h4 x-source-module="(lib &quot;plai/scribblings/plai.scrbl&quot;)" x-source-pkg="plai-doc" x-part-tag="&quot;testing&quot;">1.3<tt>&nbsp;</tt><a name="(part._testing)"></a>Testing Infrastructure</h4><p>PLAI Scheme provides the following syntactic forms for testing.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>syntax</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(form._((lib._plai/main..rkt)._test))"></a><span title="Provided from: plai | Package: plai-lib"><span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._test%29%29" class="RktStxDef RktStxLink" data-pltdoc="x">test</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">result-expr</span><span class="hspace">&nbsp;</span><span class="RktVar">expected-expr</span><span class="RktPn">)</span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">If <span class="RktVar">result-expr</span> and <span class="RktVar">expected-expr</span> evaluate to the same
value, <span class="RktVar">result-value</span>, the test prints the following expression:</div></p><p><span class="RktRes">(good result-expr result-value expected-value location)</span>.</p><p>If they do not evaluate to the same value, the test prints</p><p><span class="RktRes">(bad result-expr result-value expected-value location)</span>.</p><p>If evaluating <span class="RktVar">result-expr</span> signals an error, the test prints</p><p><span class="RktRes">(exception result-expr exception-message &lt;no-expected-value&gt; location)</span></p><p>If evaluating <span class="RktVar">expected-expr</span> signals an error, the test prints</p><p><span class="RktRes">(pred-exception result-expr exception-message &lt;no-expected-value&gt; location)</span></p><p>If the printout begins with <span class="RktSym">good</span>, then it is printed to
<span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._current-output-port%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">current-output-port</a></span><span class="RktPn">)</span>; otherwise it is printed to <span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._current-error-port%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">current-error-port</a></span><span class="RktPn">)</span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>syntax</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(form._((lib._plai/main..rkt)._test/pred))"></a><span title="Provided from: plai | Package: plai-lib"><span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._test%2Fpred%29%29" class="RktStxDef RktStxLink" data-pltdoc="x">test/pred</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">result-expr</span><span class="hspace">&nbsp;</span><span class="RktVar">pred?</span><span class="RktPn">)</span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Similar to <span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._test%29%29" class="RktStxLink" data-pltdoc="x">test</a></span>, but instead of supplying an expected value, the
predicate <span class="RktVar">pred?</span> is applied to <span class="RktVar">result-expr</span>.</div></p><p>If evaluating <span class="RktVar">pred?</span> signals an error, the test prints</p><p><span class="RktRes">(pred-exception result-expr exception-message &lt;no-expected-value&gt; location)</span></p><p>The syntax of <span class="RktVar">pred?</span> is considered <span class="RktVar">expected-value</span> for the
purposes of test reporting.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>value</p></div></div><p class="RForeground"><a name="(def._((lib._plai/main..rkt)._error))"></a><span title="Provided from: plai | Package: plai-lib"><span class="RktSym"><a href="#%28def._%28%28lib._plai%2Fmain..rkt%29._error%29%29" class="RktValDef RktValLink" data-pltdoc="x">error</a></span></span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=procedures.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._procedure%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">procedure?</a></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Like <a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=scheme&amp;rel=scheme.html&amp;version=6.7" class="RktModLink Sq" data-pltdoc="x"><span class="RktSym">scheme</span></a>&rsquo;s <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=exns.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._error%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">scheme:error</a></span>,
but generates exceptions that are caught by <span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._test%2Fexn%29%29" class="RktStxLink" data-pltdoc="x">test/exn</a></span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>syntax</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(form._((lib._plai/main..rkt)._test/exn))"></a><span title="Provided from: plai | Package: plai-lib"><span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._test%2Fexn%29%29" class="RktStxDef RktStxLink" data-pltdoc="x">test/exn</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">result-expr</span><span class="hspace">&nbsp;</span><span class="RktVar">error-message</span><span class="RktPn">)</span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">This test succeeds if the expression evaluates to a call to
<span class="RktSym"><a href="#%28def._%28%28lib._plai%2Fmain..rkt%29._error%29%29" class="RktValLink" data-pltdoc="x">error</a></span>. Moreover, the error message contained in the exception must
contain the string <span class="RktVar">error-message</span>. Note that <span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._test%2Fexn%29%29" class="RktStxLink" data-pltdoc="x">test/exn</a></span> only
succeeds if the exception was explicitly raised by the user.</div></p><p>For example, the following test succeeds:</p><blockquote class="SCodeFlow"><p><span class="RktPn">(</span><span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._test%2Fexn%29%29" class="RktStxLink" data-pltdoc="x">test/exn</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._plai%2Fmain..rkt%29._error%29%29" class="RktValLink" data-pltdoc="x">error</a></span><span class="hspace">&nbsp;</span><span class="RktVal">"/: division by zero"</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span><span class="RktVal">"by zero"</span><span class="RktPn">)</span></p></blockquote><p>The error message is <span class="RktVal">"/: division by zero"</span>, and <span class="RktVal">"by zero"</span> is
a substring of the error message. However, the following test fails:</p><blockquote class="SCodeFlow"><p><span class="RktPn">(</span><span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._test%2Fexn%29%29" class="RktStxLink" data-pltdoc="x">test/exn</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=generic-numbers.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._%252F%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">/</a></span><span class="hspace">&nbsp;</span><span class="RktVal">25</span><span class="hspace">&nbsp;</span><span class="RktVal">0</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span><span class="RktVal">"by zero"</span><span class="RktPn">)</span></p></blockquote><p>Although the expression raises an exception and the error string contains
<span class="RktVal">"by zero"</span>, since the error was not explicitly raised by user-written
code, the test fails.</p><p>The evaluation of <span class="RktVar">error-message</span> is considered
<span class="RktVar">expected-value</span> for the purposes of test reporting.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>syntax</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(form._((lib._plai/main..rkt)._test/regexp))"></a><span title="Provided from: plai | Package: plai-lib"><span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._test%2Fregexp%29%29" class="RktStxDef RktStxLink" data-pltdoc="x">test/regexp</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">result-expr</span><span class="hspace">&nbsp;</span><span class="RktVar">error-message-regexp</span><span class="RktPn">)</span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">This test is similar to <span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._test%2Fexn%29%29" class="RktStxLink" data-pltdoc="x">test/exn</a></span>,but the error message is matched
against a regular expression instead.</div></p><p>The evaluation of <span class="RktVar">error-message-regexp</span> is considered
<span class="RktVar">expected-value</span> for the purposes of test reporting.</p><h5 x-source-module="(lib &quot;plai/scribblings/plai.scrbl&quot;)" x-source-pkg="plai-doc" x-part-tag="&quot;Test_Flags&quot;">1.3.1<tt>&nbsp;</tt><a name="(part._.Test_.Flags)"></a>Test Flags</h5><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._plai/main..rkt)._abridged-test-output))"></a><span title="Provided from: plai | Package: plai-lib"><span class="RktSym"><a href="#%28def._%28%28lib._plai%2Fmain..rkt%29._abridged-test-output%29%29" class="RktValDef RktValLink" data-pltdoc="x">abridged-test-output</a></span></span><span class="hspace">&nbsp;</span>[<span class="RktVar">abridge?</span>]<span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">abridge?</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=booleans.html%23%2528def._%2528%2528lib._racket%252Fbool..rkt%2529._false%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">false</a></span></td></tr></table></blockquote></div><div class="SIntrapara">When this flag is set to <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=booleans.html%23%2528def._%2528%2528lib._racket%252Fbool..rkt%2529._true%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">true</a></span>, the test forms never prints
<span class="RktVar">result-expr</span> or <span class="RktVar">location</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._plai/main..rkt)._plai-catch-test-exn))"></a><span title="Provided from: plai | Package: plai-lib"><span class="RktSym"><a href="#%28def._%28%28lib._plai%2Fmain..rkt%29._plai-catch-test-exn%29%29" class="RktValDef RktValLink" data-pltdoc="x">plai-catch-test-exn</a></span></span><span class="hspace">&nbsp;</span>[<span class="RktVar">catch?</span>]<span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">catch?</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=booleans.html%23%2528def._%2528%2528lib._racket%252Fbool..rkt%2529._true%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">true</a></span></td></tr></table></blockquote></div><div class="SIntrapara">When this flag is set to <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=booleans.html%23%2528def._%2528%2528lib._racket%252Fbool..rkt%2529._true%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">true</a></span>, exceptions from tests will be caught.
By default, exceptions are caught.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._plai/main..rkt)._halt-on-errors))"></a><span title="Provided from: plai | Package: plai-lib"><span class="RktSym"><a href="#%28def._%28%28lib._plai%2Fmain..rkt%29._halt-on-errors%29%29" class="RktValDef RktValLink" data-pltdoc="x">halt-on-errors</a></span></span><span class="hspace">&nbsp;</span>[<span class="RktVar">halt?</span>]<span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">halt?</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=booleans.html%23%2528def._%2528%2528lib._racket%252Fbool..rkt%2529._true%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">true</a></span></td></tr></table></blockquote></div><div class="SIntrapara">This flag determines whether the program immediately halts when a test fails.
By default, programs do not halt on failures.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._plai/main..rkt)._print-only-errors))"></a><span title="Provided from: plai | Package: plai-lib"><span class="RktSym"><a href="#%28def._%28%28lib._plai%2Fmain..rkt%29._print-only-errors%29%29" class="RktValDef RktValLink" data-pltdoc="x">print-only-errors</a></span></span><span class="hspace">&nbsp;</span>[<span class="RktVar">print?</span>]<span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">print?</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=booleans.html%23%2528def._%2528%2528lib._racket%252Fbool..rkt%2529._true%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">true</a></span></td></tr></table></blockquote></div><div class="SIntrapara">When this flag is set to <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=booleans.html%23%2528def._%2528%2528lib._racket%252Fbool..rkt%2529._true%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">true</a></span>, only tests that fail will be printed.
By default, the results of all tests are printed.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._plai/main..rkt)._test-inexact-epsilon))"></a><span title="Provided from: plai | Package: plai-lib"><span class="RktSym"><a href="#%28def._%28%28lib._plai%2Fmain..rkt%29._test-inexact-epsilon%29%29" class="RktValDef RktValLink" data-pltdoc="x">test-inexact-epsilon</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">epsilon</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">epsilon</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._number%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">number?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">When testing inexact values for equality, <span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._test%29%29" class="RktStxLink" data-pltdoc="x">test</a></span> permits them to differ
by <span class="RktVar">epsilon</span>.  The default value of <span class="RktVar">epsilon</span> is <span class="RktVal">0.01</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._plai/main..rkt)._plai-ignore-exn-strings))"></a><span title="Provided from: plai | Package: plai-lib"><span class="RktSym"><a href="#%28def._%28%28lib._plai%2Fmain..rkt%29._plai-ignore-exn-strings%29%29" class="RktValDef RktValLink" data-pltdoc="x">plai-ignore-exn-strings</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">ignore?</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">ignore?</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">If this flag is set to <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=booleans.html%23%2528def._%2528%2528lib._racket%252Fbool..rkt%2529._true%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">true</a></span>, when testing for exceptions with
<span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._test%2Fexn%29%29" class="RktStxLink" data-pltdoc="x">test/exn</a></span> and <span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._test%2Fregexp%29%29" class="RktStxLink" data-pltdoc="x">test/regexp</a></span>, the message of the exception is
ignored.  By default, <span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._test%2Fexn%29%29" class="RktStxLink" data-pltdoc="x">test/exn</a></span> and <span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._test%2Fregexp%29%29" class="RktStxLink" data-pltdoc="x">test/regexp</a></span> only succeed
when the message of the exception matches the supplied string or regular
expression.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>syntax</p></div></div><p class="RForeground"><a name="(form._((lib._plai/main..rkt)._plai-all-test-results))"></a><span title="Provided from: plai | Package: plai-lib"><span class="RktSym"><a href="#%28form._%28%28lib._plai%2Fmain..rkt%29._plai-all-test-results%29%29" class="RktStxDef RktStxLink" data-pltdoc="x">plai-all-test-results</a></span></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">This variable is the list of all tests that have been run so far, with the most
recent test at the head.</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, &quot;6.7&quot;, &quot;../&quot;);" onfocus="this.style.color=&quot;black&quot;; this.style.textAlign=&quot;left&quot;; if (this.value == &quot;...search manuals...&quot;) this.value=&quot;&quot;;" onblur="if (this.value.match(/^ *$/)) { this.style.color=&quot;#888&quot;; this.style.textAlign=&quot;center&quot;; this.value=&quot;...search manuals...&quot;; }"/></form>&nbsp;&nbsp;<a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot(&quot;6.7&quot;);">top</a></span><span class="navright">&nbsp;&nbsp;<a href="index.html" title="backward to &quot;Programming Languages: Application and Interpretation&quot;" data-pltdoc="x">&larr; prev</a>&nbsp;&nbsp;<a href="index.html" title="up to &quot;Programming Languages: Application and Interpretation&quot;" data-pltdoc="x">up</a>&nbsp;&nbsp;<a href="collector.html" title="forward to &quot;2 GC Collector Scheme&quot;" data-pltdoc="x">next &rarr;</a></span>&nbsp;</div></div></div><div id="contextindicator">&nbsp;</div></body></html>