This file is indexed.

/usr/share/doc/racket/reference/reader.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
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
<!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.3&nbsp;The Reader</title><link rel="stylesheet" type="text/css" href="../scribble.css" title="default"/><link rel="stylesheet" type="text/css" href="extras.css" title="default"/><link rel="stylesheet" type="text/css" href="../racket.css" title="default"/><link rel="stylesheet" type="text/css" href="icons.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="../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="../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;);">&#9658;</a></td><td></td><td><a href="index.html" class="tocviewlink" data-pltdoc="x"><span style="font-weight: bold">The Racket Reference</span></a></td></tr></table></div><div class="tocviewsublisttop" style="display: none;" id="tocview_0"><table cellspacing="0" cellpadding="0"><tr><td align="right">1&nbsp;</td><td><a href="model.html" class="tocviewselflink" data-pltdoc="x">Language Model</a></td></tr><tr><td align="right">2&nbsp;</td><td><a href="notation.html" class="tocviewlink" data-pltdoc="x">Notation for Documentation</a></td></tr><tr><td align="right">3&nbsp;</td><td><a href="syntax.html" class="tocviewlink" data-pltdoc="x">Syntactic Forms</a></td></tr><tr><td align="right">4&nbsp;</td><td><a href="data.html" class="tocviewlink" data-pltdoc="x">Datatypes</a></td></tr><tr><td align="right">5&nbsp;</td><td><a href="structures.html" class="tocviewlink" data-pltdoc="x">Structures</a></td></tr><tr><td align="right">6&nbsp;</td><td><a href="mzlib_class.html" class="tocviewlink" data-pltdoc="x">Classes and Objects</a></td></tr><tr><td align="right">7&nbsp;</td><td><a href="mzlib_unit.html" class="tocviewlink" data-pltdoc="x">Units</a></td></tr><tr><td align="right">8&nbsp;</td><td><a href="contracts.html" class="tocviewlink" data-pltdoc="x">Contracts</a></td></tr><tr><td align="right">9&nbsp;</td><td><a href="match.html" class="tocviewlink" data-pltdoc="x">Pattern Matching</a></td></tr><tr><td align="right">10&nbsp;</td><td><a href="control.html" class="tocviewlink" data-pltdoc="x">Control Flow</a></td></tr><tr><td align="right">11&nbsp;</td><td><a href="concurrency.html" class="tocviewlink" data-pltdoc="x">Concurrency and Parallelism</a></td></tr><tr><td align="right">12&nbsp;</td><td><a href="Macros.html" class="tocviewlink" data-pltdoc="x">Macros</a></td></tr><tr><td align="right">13&nbsp;</td><td><a href="input-and-output.html" class="tocviewlink" data-pltdoc="x">Input and Output</a></td></tr><tr><td align="right">14&nbsp;</td><td><a href="security.html" class="tocviewlink" data-pltdoc="x">Reflection and Security</a></td></tr><tr><td align="right">15&nbsp;</td><td><a href="os.html" class="tocviewlink" data-pltdoc="x">Operating System</a></td></tr><tr><td align="right">16&nbsp;</td><td><a href="memory.html" class="tocviewlink" data-pltdoc="x">Memory Management</a></td></tr><tr><td align="right">17&nbsp;</td><td><a href="unsafe.html" class="tocviewlink" data-pltdoc="x">Unsafe Operations</a></td></tr><tr><td align="right">18&nbsp;</td><td><a href="running.html" class="tocviewlink" data-pltdoc="x">Running Racket</a></td></tr><tr><td align="right"></td><td><a href="doc-bibliography.html" class="tocviewlink" data-pltdoc="x">Bibliography</a></td></tr><tr><td align="right"></td><td><a href="doc-index.html" class="tocviewlink" data-pltdoc="x">Index</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;);">&#9660;</a></td><td>1&nbsp;</td><td><a href="model.html" class="tocviewlink" data-pltdoc="x">Language Model</a></td></tr></table><div class="tocviewsublist" style="display: block;" id="tocview_1"><table cellspacing="0" cellpadding="0"><tr><td align="right">1.1&nbsp;</td><td><a href="eval-model.html" class="tocviewlink" data-pltdoc="x">Evaluation Model</a></td></tr><tr><td align="right">1.2&nbsp;</td><td><a href="syntax-model.html" class="tocviewlink" data-pltdoc="x">Syntax Model</a></td></tr><tr><td align="right">1.3&nbsp;</td><td><a href="" class="tocviewselflink" data-pltdoc="x">The Reader</a></td></tr><tr><td align="right">1.4&nbsp;</td><td><a href="printing.html" class="tocviewlink" data-pltdoc="x">The Printer</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_2&quot;);">&#9658;</a></td><td>1.3&nbsp;</td><td><a href="" class="tocviewselflink" data-pltdoc="x">The Reader</a></td></tr></table><div class="tocviewsublistbottom" style="display: none;" id="tocview_2"><table cellspacing="0" cellpadding="0"><tr><td align="right">1.3.1&nbsp;</td><td><a href="#%28part._default-readtable-dispatch%29" class="tocviewlink" data-pltdoc="x">Delimiters and Dispatch</a></td></tr><tr><td align="right">1.3.2&nbsp;</td><td><a href="#%28part._parse-symbol%29" class="tocviewlink" data-pltdoc="x">Reading Symbols</a></td></tr><tr><td align="right">1.3.3&nbsp;</td><td><a href="#%28part._parse-number%29" class="tocviewlink" data-pltdoc="x">Reading Numbers</a></td></tr><tr><td align="right">1.3.4&nbsp;</td><td><a href="#%28part._parse-extflonum%29" class="tocviewlink" data-pltdoc="x">Reading Extflonums</a></td></tr><tr><td align="right">1.3.5&nbsp;</td><td><a href="#%28part._parse-boolean%29" class="tocviewlink" data-pltdoc="x">Reading Booleans</a></td></tr><tr><td align="right">1.3.6&nbsp;</td><td><a href="#%28part._parse-pair%29" class="tocviewlink" data-pltdoc="x">Reading Pairs and Lists</a></td></tr><tr><td align="right">1.3.7&nbsp;</td><td><a href="#%28part._parse-string%29" class="tocviewlink" data-pltdoc="x">Reading Strings</a></td></tr><tr><td align="right">1.3.8&nbsp;</td><td><a href="#%28part._parse-quote%29" class="tocviewlink" data-pltdoc="x">Reading Quotes</a></td></tr><tr><td align="right">1.3.9&nbsp;</td><td><a href="#%28part._parse-comment%29" class="tocviewlink" data-pltdoc="x">Reading Comments</a></td></tr><tr><td align="right">1.3.10&nbsp;</td><td><a href="#%28part._parse-vector%29" class="tocviewlink" data-pltdoc="x">Reading Vectors</a></td></tr><tr><td align="right">1.3.11&nbsp;</td><td><a href="#%28part._parse-structure%29" class="tocviewlink" data-pltdoc="x">Reading Structures</a></td></tr><tr><td align="right">1.3.12&nbsp;</td><td><a href="#%28part._parse-hashtable%29" class="tocviewlink" data-pltdoc="x">Reading Hash Tables</a></td></tr><tr><td align="right">1.3.13&nbsp;</td><td><a href="#%28part._parse-box%29" class="tocviewlink" data-pltdoc="x">Reading Boxes</a></td></tr><tr><td align="right">1.3.14&nbsp;</td><td><a href="#%28part._parse-character%29" class="tocviewlink" data-pltdoc="x">Reading Characters</a></td></tr><tr><td align="right">1.3.15&nbsp;</td><td><a href="#%28part._parse-keyword%29" class="tocviewlink" data-pltdoc="x">Reading Keywords</a></td></tr><tr><td align="right">1.3.16&nbsp;</td><td><a href="#%28part._parse-regexp%29" class="tocviewlink" data-pltdoc="x">Reading Regular Expressions</a></td></tr><tr><td align="right">1.3.17&nbsp;</td><td><a href="#%28part._parse-graph%29" class="tocviewlink" data-pltdoc="x">Reading Graph Structure</a></td></tr><tr><td align="right">1.3.18&nbsp;</td><td><a href="#%28part._parse-reader%29" class="tocviewlink" data-pltdoc="x">Reading via an Extension</a></td></tr><tr><td align="right">1.3.19&nbsp;</td><td><a href="#%28part._parse-cdot%29" class="tocviewlink" data-pltdoc="x">Reading with C-<wbr></wbr>style infix dot notation</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.3.1<tt>&nbsp;</tt></span><a href="#%28part._default-readtable-dispatch%29" class="tocsubseclink" data-pltdoc="x">Delimiters and Dispatch</a></td></tr><tr><td><span class="tocsublinknumber">1.3.2<tt>&nbsp;</tt></span><a href="#%28part._parse-symbol%29" class="tocsubseclink" data-pltdoc="x">Reading Symbols</a></td></tr><tr><td><span class="tocsublinknumber">1.3.3<tt>&nbsp;</tt></span><a href="#%28part._parse-number%29" class="tocsubseclink" data-pltdoc="x">Reading Numbers</a></td></tr><tr><td><span class="tocsublinknumber">1.3.4<tt>&nbsp;</tt></span><a href="#%28part._parse-extflonum%29" class="tocsubseclink" data-pltdoc="x">Reading Extflonums</a></td></tr><tr><td><span class="tocsublinknumber">1.3.5<tt>&nbsp;</tt></span><a href="#%28part._parse-boolean%29" class="tocsubseclink" data-pltdoc="x">Reading Booleans</a></td></tr><tr><td><span class="tocsublinknumber">1.3.6<tt>&nbsp;</tt></span><a href="#%28part._parse-pair%29" class="tocsubseclink" data-pltdoc="x">Reading Pairs and Lists</a></td></tr><tr><td><span class="tocsublinknumber">1.3.7<tt>&nbsp;</tt></span><a href="#%28part._parse-string%29" class="tocsubseclink" data-pltdoc="x">Reading Strings</a></td></tr><tr><td><span class="tocsublinknumber">1.3.8<tt>&nbsp;</tt></span><a href="#%28part._parse-quote%29" class="tocsubseclink" data-pltdoc="x">Reading Quotes</a></td></tr><tr><td><span class="tocsublinknumber">1.3.9<tt>&nbsp;</tt></span><a href="#%28part._parse-comment%29" class="tocsubseclink" data-pltdoc="x">Reading Comments</a></td></tr><tr><td><span class="tocsublinknumber">1.3.10<tt>&nbsp;</tt></span><a href="#%28part._parse-vector%29" class="tocsubseclink" data-pltdoc="x">Reading Vectors</a></td></tr><tr><td><span class="tocsublinknumber">1.3.11<tt>&nbsp;</tt></span><a href="#%28part._parse-structure%29" class="tocsubseclink" data-pltdoc="x">Reading Structures</a></td></tr><tr><td><span class="tocsublinknumber">1.3.12<tt>&nbsp;</tt></span><a href="#%28part._parse-hashtable%29" class="tocsubseclink" data-pltdoc="x">Reading Hash Tables</a></td></tr><tr><td><span class="tocsublinknumber">1.3.13<tt>&nbsp;</tt></span><a href="#%28part._parse-box%29" class="tocsubseclink" data-pltdoc="x">Reading Boxes</a></td></tr><tr><td><span class="tocsublinknumber">1.3.14<tt>&nbsp;</tt></span><a href="#%28part._parse-character%29" class="tocsubseclink" data-pltdoc="x">Reading Characters</a></td></tr><tr><td><span class="tocsublinknumber">1.3.15<tt>&nbsp;</tt></span><a href="#%28part._parse-keyword%29" class="tocsubseclink" data-pltdoc="x">Reading Keywords</a></td></tr><tr><td><span class="tocsublinknumber">1.3.16<tt>&nbsp;</tt></span><a href="#%28part._parse-regexp%29" class="tocsubseclink" data-pltdoc="x">Reading Regular Expressions</a></td></tr><tr><td><span class="tocsublinknumber">1.3.17<tt>&nbsp;</tt></span><a href="#%28part._parse-graph%29" class="tocsubseclink" data-pltdoc="x">Reading Graph Structure</a></td></tr><tr><td><span class="tocsublinknumber">1.3.18<tt>&nbsp;</tt></span><a href="#%28part._parse-reader%29" class="tocsubseclink" data-pltdoc="x">Reading via an Extension</a></td></tr><tr><td><span class="tocsublinknumber">1.3.19<tt>&nbsp;</tt></span><a href="#%28part._parse-cdot%29" class="tocsubseclink" data-pltdoc="x">Reading with C-<wbr></wbr>style infix dot notation</a></td></tr><tr><td><span class="tocsublinknumber">1.3.19.1<tt>&nbsp;</tt></span><a href="#%28part._.S-.Expression_.Reader_.Language%29" class="tocsubseclink" data-pltdoc="x">S-<wbr></wbr>Expression Reader Language</a></td></tr><tr><td><span class="tocsublinknumber">1.3.19.2<tt>&nbsp;</tt></span><a href="#%28part._.Chaining_.Reader_.Language%29" class="tocsubseclink" data-pltdoc="x">Chaining Reader Language</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="syntax-model.html" title="backward to &quot;1.2 Syntax Model&quot;" data-pltdoc="x">&larr; prev</a>&nbsp;&nbsp;<a href="model.html" title="up to &quot;1 Language Model&quot;" data-pltdoc="x">up</a>&nbsp;&nbsp;<a href="printing.html" title="forward to &quot;1.4 The Printer&quot;" data-pltdoc="x">next &rarr;</a></span>&nbsp;</div><h4 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;reader&quot;">1.3<tt>&nbsp;</tt><a name="(part._reader)"></a>The Reader</h4><p>Racket&rsquo;s reader is a recursive-descent parser that can be configured
through a <a href="readtables.html" data-pltdoc="x">readtable</a> and various other
<a href="eval-model.html#%28tech._parameter%29" class="techoutside" data-pltdoc="x"><span class="techinside">parameters</span></a>. This section describes the reader&rsquo;s parsing when
using the default readtable.</p><p>Reading from a stream produces one <a name="(tech._datum)"></a><span style="font-style: italic">datum</span>. If the result
datum is a compound value, then reading the datum typically requires
the reader to call itself recursively to read the component data.</p><p>The reader can be invoked in either of two modes: <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read%29%29" class="RktValLink" data-pltdoc="x">read</a></span> mode,
or <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-syntax%29%29" class="RktValLink" data-pltdoc="x">read-syntax</a></span> mode. In <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-syntax%29%29" class="RktValLink" data-pltdoc="x">read-syntax</a></span> mode, the result
is always a <a href="syntax-model.html#%28tech._syntax._object%29" data-pltdoc="x">syntax object</a> that includes
source-location and (initially empty) lexical information wrapped
around the sort of datum that <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read%29%29" class="RktValLink" data-pltdoc="x">read</a></span> mode would produce. In the
case of <a href="pairs.html#%28tech._pair%29" class="techoutside" data-pltdoc="x"><span class="techinside">pairs</span></a>, <a href="vectors.html#%28tech._vector%29" class="techoutside" data-pltdoc="x"><span class="techinside">vectors</span></a>, and <a href="boxes.html#%28tech._box%29" class="techoutside" data-pltdoc="x"><span class="techinside">box</span></a>es, the content is also
wrapped recursively as a syntax object. Unless specified otherwise,
this section describes the reader&rsquo;s behavior in <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read%29%29" class="RktValLink" data-pltdoc="x">read</a></span> mode,
and <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-syntax%29%29" class="RktValLink" data-pltdoc="x">read-syntax</a></span> mode does the same modulo wrapping of the final
result.</p><p>Reading is defined in terms of Unicode characters; see
<a href="ports.html" data-pltdoc="x">Ports</a> for information on how a byte stream is converted
to a character stream.</p><p>Symbols, keywords, strings, byte strings, regexps, characters, and
numbers produced by the reader in <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-syntax%29%29" class="RktValLink" data-pltdoc="x">read-syntax</a></span> mode are
<a name="(tech._interned)"></a><span style="font-style: italic">interned</span>, which means that such values in the result of
<span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-syntax%29%29" class="RktValLink" data-pltdoc="x">read-syntax</a></span> are always <span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._eq~3f%29%29" class="RktValLink" data-pltdoc="x">eq?</a></span> when they are
<span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._equal~3f%29%29" class="RktValLink" data-pltdoc="x">equal?</a></span> (whether from the same call or different calls to
<span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-syntax%29%29" class="RktValLink" data-pltdoc="x">read-syntax</a></span>). Symbols and keywords are <a href="#%28tech._interned%29" class="techoutside" data-pltdoc="x"><span class="techinside">interned</span></a> in
both <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read%29%29" class="RktValLink" data-pltdoc="x">read</a></span> and <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-syntax%29%29" class="RktValLink" data-pltdoc="x">read-syntax</a></span> mode. Sending an
<a href="#%28tech._interned%29" class="techoutside" data-pltdoc="x"><span class="techinside">interned</span></a> value across a <a href="places.html#%28tech._place._channel%29" class="techoutside" data-pltdoc="x"><span class="techinside">place channel</span></a> does not
necessarily produce an <a href="#%28tech._interned%29" class="techoutside" data-pltdoc="x"><span class="techinside">interned</span></a> value at the receiving
<a href="places.html#%28tech._place%29" class="techoutside" data-pltdoc="x"><span class="techinside">place</span></a>. See also <span class="RktSym"><a href="stxops.html#%28def._%28%28quote._~23~25kernel%29._datum-intern-literal%29%29" class="RktValLink" data-pltdoc="x">datum-intern-literal</a></span> and
<span class="RktSym"><a href="stxops.html#%28def._%28%28quote._~23~25kernel%29._datum-~3esyntax%29%29" class="RktValLink" data-pltdoc="x">datum-&gt;syntax</a></span>.</p><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;default-readtable-dispatch&quot;">1.3.1<tt>&nbsp;</tt><a name="(part._default-readtable-dispatch)"></a>Delimiters and Dispatch</h5><p>Along with <a href="characters.html#%28def._%28%28quote._~23~25kernel%29._char-whitespace~3f%29%29" data-pltdoc="x">whitespace</a>, the following
characters are <span style="font-style: italic">delimiters</span>:</p><p><span class="hspace">&nbsp;&nbsp;</span> <span class="RktInBG"><span class="hspace"></span><span class="RktIn">(</span><span class="hspace"></span></span> <span class="RktInBG"><span class="hspace"></span><span class="RktIn">)</span><span class="hspace"></span></span> <span class="RktInBG"><span class="hspace"></span><span class="RktIn">[</span><span class="hspace"></span></span> <span class="RktInBG"><span class="hspace"></span><span class="RktIn">]</span><span class="hspace"></span></span>
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">{</span><span class="hspace"></span></span> <span class="RktInBG"><span class="hspace"></span><span class="RktIn">}</span><span class="hspace"></span></span>
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">"</span><span class="hspace"></span></span> <span class="RktInBG"><span class="hspace"></span><span class="RktIn">,</span><span class="hspace"></span></span> <span class="RktInBG"><span class="hspace"></span><span class="RktIn">'</span><span class="hspace"></span></span> <span class="RktInBG"><span class="hspace"></span><span class="RktIn">`</span><span class="hspace"></span></span>
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">;</span><span class="hspace"></span></span></p><p>A delimited sequence that starts with any other character is typically
parsed as either a symbol, number, or <a href="extflonums.html#%28tech._extflonum%29" class="techoutside" data-pltdoc="x"><span class="techinside">extflonum</span></a>, but a few non-delimiter
characters play special roles:</p><ul><li><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span> has a special meaning as an initial character in a
delimited sequence; its meaning depends on the characters that
follow; see below.</p></li><li><p><a name="(idx._(gentag._2._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">|</span><span class="hspace"></span></span> starts a subsequence of characters to
be included verbatim in the delimited sequence (i.e., they are
never treated as delimiters, and they are not case-folded when
case-insensitivity is enabled); the subsequence is terminated
by another <span class="RktInBG"><span class="hspace"></span><span class="RktIn">|</span><span class="hspace"></span></span>, and neither the initial nor
terminating <span class="RktInBG"><span class="hspace"></span><span class="RktIn">|</span><span class="hspace"></span></span> is part of the subsequence.</p></li><li><p><a name="(idx._(gentag._3._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">\</span><span class="hspace"></span></span> outside of a <span class="RktInBG"><span class="hspace"></span><span class="RktIn">|</span><span class="hspace"></span></span> pair causes
the following character to be included verbatim in a delimited
sequence.</p></li></ul><p>More precisely, after skipping whitespace, the reader dispatches based
on the next character or characters in the input stream as follows:</p><p><table cellspacing="0" cellpadding="0"><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">(</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="pairs.html#%28tech._pair%29" class="techoutside" data-pltdoc="x"><span class="techinside">pair</span></a> or <a href="pairs.html#%28tech._list%29" class="techoutside" data-pltdoc="x"><span class="techinside">list</span></a>; see <a href="#%28part._parse-pair%29" data-pltdoc="x">Reading Pairs and Lists</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">[</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="pairs.html#%28tech._pair%29" class="techoutside" data-pltdoc="x"><span class="techinside">pair</span></a> or <a href="pairs.html#%28tech._list%29" class="techoutside" data-pltdoc="x"><span class="techinside">list</span></a>; see <a href="#%28part._parse-pair%29" data-pltdoc="x">Reading Pairs and Lists</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">{</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="pairs.html#%28tech._pair%29" class="techoutside" data-pltdoc="x"><span class="techinside">pair</span></a> or <a href="pairs.html#%28tech._list%29" class="techoutside" data-pltdoc="x"><span class="techinside">list</span></a>; see <a href="#%28part._parse-pair%29" data-pltdoc="x">Reading Pairs and Lists</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">)</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>matches <span class="RktInBG"><span class="hspace"></span><span class="RktIn">(</span><span class="hspace"></span></span> or raises <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread%29%29" class="RktValLink" data-pltdoc="x">exn:fail:read</a></span></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">]</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>matches <span class="RktInBG"><span class="hspace"></span><span class="RktIn">[</span><span class="hspace"></span></span> or raises <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread%29%29" class="RktValLink" data-pltdoc="x">exn:fail:read</a></span></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">}</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>matches <span class="RktInBG"><span class="hspace"></span><span class="RktIn">{</span><span class="hspace"></span></span> or raises <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread%29%29" class="RktValLink" data-pltdoc="x">exn:fail:read</a></span></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">"</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="strings.html#%28tech._string%29" class="techoutside" data-pltdoc="x"><span class="techinside">string</span></a>; see <a href="#%28part._parse-string%29" data-pltdoc="x">Reading Strings</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">'</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a quote; see <a href="#%28part._parse-quote%29" data-pltdoc="x">Reading Quotes</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">`</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a quasiquote; see <a href="#%28part._parse-quote%29" data-pltdoc="x">Reading Quotes</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">,</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a [splicing] unquote; see <a href="#%28part._parse-quote%29" data-pltdoc="x">Reading Quotes</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">;</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a line comment; see <a href="#%28part._parse-comment%29" data-pltdoc="x">Reading Comments</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#t</span><span class="hspace"></span></span> or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#T</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>true; see <a href="#%28part._parse-boolean%29" data-pltdoc="x">Reading Booleans</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#f</span><span class="hspace"></span></span> or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#F</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>false; see <a href="#%28part._parse-boolean%29" data-pltdoc="x">Reading Booleans</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#(</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="vectors.html#%28tech._vector%29" class="techoutside" data-pltdoc="x"><span class="techinside">vector</span></a>; see <a href="#%28part._parse-vector%29" data-pltdoc="x">Reading Vectors</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#[</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="vectors.html#%28tech._vector%29" class="techoutside" data-pltdoc="x"><span class="techinside">vector</span></a>; see <a href="#%28part._parse-vector%29" data-pltdoc="x">Reading Vectors</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#{</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="vectors.html#%28tech._vector%29" class="techoutside" data-pltdoc="x"><span class="techinside">vector</span></a>; see <a href="#%28part._parse-vector%29" data-pltdoc="x">Reading Vectors</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#fl(</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="flonums.html#%28tech._flvector%29" class="techoutside" data-pltdoc="x"><span class="techinside">flvector</span></a>; see <a href="#%28part._parse-vector%29" data-pltdoc="x">Reading Vectors</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#fl[</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="flonums.html#%28tech._flvector%29" class="techoutside" data-pltdoc="x"><span class="techinside">flvector</span></a>; see <a href="#%28part._parse-vector%29" data-pltdoc="x">Reading Vectors</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#fl{</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="flonums.html#%28tech._flvector%29" class="techoutside" data-pltdoc="x"><span class="techinside">flvector</span></a>; see <a href="#%28part._parse-vector%29" data-pltdoc="x">Reading Vectors</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#fx(</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="fixnums.html#%28tech._fxvector%29" class="techoutside" data-pltdoc="x"><span class="techinside">fxvector</span></a>; see <a href="#%28part._parse-vector%29" data-pltdoc="x">Reading Vectors</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#fx[</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="fixnums.html#%28tech._fxvector%29" class="techoutside" data-pltdoc="x"><span class="techinside">fxvector</span></a>; see <a href="#%28part._parse-vector%29" data-pltdoc="x">Reading Vectors</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#fx{</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="fixnums.html#%28tech._fxvector%29" class="techoutside" data-pltdoc="x"><span class="techinside">fxvector</span></a>; see <a href="#%28part._parse-vector%29" data-pltdoc="x">Reading Vectors</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#s(</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="structures.html#%28tech._structure%29" class="techoutside" data-pltdoc="x"><span class="techinside">structure</span></a> literal; see <a href="#%28part._parse-structure%29" data-pltdoc="x">Reading Structures</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#s[</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="structures.html#%28tech._structure%29" class="techoutside" data-pltdoc="x"><span class="techinside">structure</span></a> literal; see <a href="#%28part._parse-structure%29" data-pltdoc="x">Reading Structures</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#s{</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="structures.html#%28tech._structure%29" class="techoutside" data-pltdoc="x"><span class="techinside">structure</span></a> literal; see <a href="#%28part._parse-structure%29" data-pltdoc="x">Reading Structures</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#\</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="characters.html#%28tech._character%29" class="techoutside" data-pltdoc="x"><span class="techinside">character</span></a>; see <a href="#%28part._parse-character%29" data-pltdoc="x">Reading Characters</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#"</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="bytestrings.html#%28tech._byte._string%29" class="techoutside" data-pltdoc="x"><span class="techinside">byte string</span></a>; see <a href="#%28part._parse-string%29" data-pltdoc="x">Reading Strings</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#%</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="symbols.html#%28tech._symbol%29" class="techoutside" data-pltdoc="x"><span class="techinside">symbol</span></a>; see <a href="#%28part._parse-symbol%29" data-pltdoc="x">Reading Symbols</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#:</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="keywords.html#%28tech._keyword%29" class="techoutside" data-pltdoc="x"><span class="techinside">keyword</span></a>; see <a href="#%28part._parse-keyword%29" data-pltdoc="x">Reading Keywords</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#&amp;</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="boxes.html#%28tech._box%29" class="techoutside" data-pltdoc="x"><span class="techinside">box</span></a>; see <a href="#%28part._parse-box%29" data-pltdoc="x">Reading Boxes</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#|</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a block comment; see <a href="#%28part._parse-comment%29" data-pltdoc="x">Reading Comments</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#;</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts an S-expression comment; see <a href="#%28part._parse-comment%29" data-pltdoc="x">Reading Comments</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#'</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a syntax quote; see <a href="#%28part._parse-quote%29" data-pltdoc="x">Reading Quotes</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#!</span><span class="hspace">&nbsp;</span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a line comment; see <a href="#%28part._parse-comment%29" data-pltdoc="x">Reading Comments</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#!/</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a line comment; see <a href="#%28part._parse-comment%29" data-pltdoc="x">Reading Comments</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#!</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>may start a reader extension; see <a href="#%28part._parse-reader%29" data-pltdoc="x">Reading via an Extension</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#`</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a syntax quasiquote; see <a href="#%28part._parse-quote%29" data-pltdoc="x">Reading Quotes</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#,</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a syntax [splicing] unquote; see <a href="#%28part._parse-quote%29" data-pltdoc="x">Reading Quotes</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#~</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts compiled code; see <a href="printing.html#%28part._print-compiled%29" data-pltdoc="x">Printing Compiled Code</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#i</span><span class="hspace"></span></span> or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#I</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="numbers.html#%28tech._number%29" class="techoutside" data-pltdoc="x"><span class="techinside">number</span></a>; see <a href="#%28part._parse-number%29" data-pltdoc="x">Reading Numbers</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#e</span><span class="hspace"></span></span> or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#E</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="numbers.html#%28tech._number%29" class="techoutside" data-pltdoc="x"><span class="techinside">number</span></a>; see <a href="#%28part._parse-number%29" data-pltdoc="x">Reading Numbers</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#x</span><span class="hspace"></span></span> or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#X</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="numbers.html#%28tech._number%29" class="techoutside" data-pltdoc="x"><span class="techinside">number</span></a> or <a href="extflonums.html#%28tech._extflonum%29" class="techoutside" data-pltdoc="x"><span class="techinside">extflonum</span></a>; see <a href="#%28part._parse-number%29" data-pltdoc="x">Reading Numbers</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#o</span><span class="hspace"></span></span> or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#O</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="numbers.html#%28tech._number%29" class="techoutside" data-pltdoc="x"><span class="techinside">number</span></a> or <a href="extflonums.html#%28tech._extflonum%29" class="techoutside" data-pltdoc="x"><span class="techinside">extflonum</span></a>; see <a href="#%28part._parse-number%29" data-pltdoc="x">Reading Numbers</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#d</span><span class="hspace"></span></span> or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#D</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="numbers.html#%28tech._number%29" class="techoutside" data-pltdoc="x"><span class="techinside">number</span></a> or <a href="extflonums.html#%28tech._extflonum%29" class="techoutside" data-pltdoc="x"><span class="techinside">extflonum</span></a>; see <a href="#%28part._parse-number%29" data-pltdoc="x">Reading Numbers</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#b</span><span class="hspace"></span></span> or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#B</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="numbers.html#%28tech._number%29" class="techoutside" data-pltdoc="x"><span class="techinside">number</span></a> or <a href="extflonums.html#%28tech._extflonum%29" class="techoutside" data-pltdoc="x"><span class="techinside">extflonum</span></a>; see <a href="#%28part._parse-number%29" data-pltdoc="x">Reading Numbers</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#&lt;&lt;</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="strings.html#%28tech._string%29" class="techoutside" data-pltdoc="x"><span class="techinside">string</span></a>; see <a href="#%28part._parse-string%29" data-pltdoc="x">Reading Strings</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#rx</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="regexp.html#%28tech._regular._expression%29" class="techoutside" data-pltdoc="x"><span class="techinside">regular expression</span></a>; see <a href="#%28part._parse-regexp%29" data-pltdoc="x">Reading Regular Expressions</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#px</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="regexp.html#%28tech._regular._expression%29" class="techoutside" data-pltdoc="x"><span class="techinside">regular expression</span></a>; see <a href="#%28part._parse-regexp%29" data-pltdoc="x">Reading Regular Expressions</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#ci</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#cI</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#Ci</span><span class="hspace"></span></span>,  or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#CI</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>switches case sensitivity; see <a href="#%28part._parse-symbol%29" data-pltdoc="x">Reading Symbols</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#cs</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#cS</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#Cs</span><span class="hspace"></span></span>,  or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#CS</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>switches case sensitivity; see <a href="#%28part._parse-symbol%29" data-pltdoc="x">Reading Symbols</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#hash</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="hashtables.html#%28tech._hash._table%29" class="techoutside" data-pltdoc="x"><span class="techinside">hash table</span></a>; see <a href="#%28part._parse-hashtable%29" data-pltdoc="x">Reading Hash Tables</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#reader</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a reader extension use; see <a href="#%28part._parse-reader%29" data-pltdoc="x">Reading via an Extension</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#lang</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a reader extension use; see <a href="#%28part._parse-reader%29" data-pltdoc="x">Reading via an Extension</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span><span style="vertical-align: super; font-size: 80%">+</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">(</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a vector; see <a href="#%28part._parse-vector%29" data-pltdoc="x">Reading Vectors</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span><span style="vertical-align: super; font-size: 80%">+</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">[</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a vector; see <a href="#%28part._parse-vector%29" data-pltdoc="x">Reading Vectors</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span><span style="vertical-align: super; font-size: 80%">+</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">{</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a vector; see <a href="#%28part._parse-vector%29" data-pltdoc="x">Reading Vectors</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#fl</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span><span style="vertical-align: super; font-size: 80%">+</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">(</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a flvector; see <a href="#%28part._parse-vector%29" data-pltdoc="x">Reading Vectors</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#fl</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span><span style="vertical-align: super; font-size: 80%">+</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">[</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a flvector; see <a href="#%28part._parse-vector%29" data-pltdoc="x">Reading Vectors</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#fl</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span><span style="vertical-align: super; font-size: 80%">+</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">{</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a flvector; see <a href="#%28part._parse-vector%29" data-pltdoc="x">Reading Vectors</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#fx</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span><span style="vertical-align: super; font-size: 80%">+</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">(</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a fxvector; see <a href="#%28part._parse-vector%29" data-pltdoc="x">Reading Vectors</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#fx</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span><span style="vertical-align: super; font-size: 80%">+</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">[</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a fxvector; see <a href="#%28part._parse-vector%29" data-pltdoc="x">Reading Vectors</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#fx</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span><span style="vertical-align: super; font-size: 80%">+</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">{</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a fxvector; see <a href="#%28part._parse-vector%29" data-pltdoc="x">Reading Vectors</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span><span class="sroman"><span style="vertical-align: super; font-size: 80%">{1,8}</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">=</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>binds a graph tag; see <a href="#%28part._parse-graph%29" data-pltdoc="x">Reading Graph Structure</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span><span class="sroman"><span style="vertical-align: super; font-size: 80%">{1,8}</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>uses a graph tag; see <a href="#%28part._parse-graph%29" data-pltdoc="x">Reading Graph Structure</a></p></td></tr><tr><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="right"><p><span style="font-style: italic">otherwise</span></p></td><td align="left"><p><span class="hspace">&nbsp;</span></p></td><td align="left"><p>starts a <a href="symbols.html#%28tech._symbol%29" class="techoutside" data-pltdoc="x"><span class="techinside">symbol</span></a>; see <a href="#%28part._parse-symbol%29" data-pltdoc="x">Reading Symbols</a></p></td></tr></table></p><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;parse-symbol&quot;">1.3.2<tt>&nbsp;</tt><a name="(part._parse-symbol)"></a>Reading Symbols</h5><blockquote class="refpara"><blockquote class="refcolumn"><blockquote class="refcontent"><p><span class="imageleft"><img src="finger.png" alt="+" width="24" height="24"/></span><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=guide&amp;rel=symbols.html&amp;version=6.7" class="Sq" data-pltdoc="x">Symbols</a> in <a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=guide&amp;rel=index.html&amp;version=6.7" class="Sq" data-pltdoc="x"><span style="font-weight: bold">The Racket Guide</span></a> introduces the syntax of symbols.</p></blockquote></blockquote></blockquote><p>A sequence that does not start with a delimiter or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span> is
parsed as either a <a href="symbols.html#%28tech._symbol%29" class="techoutside" data-pltdoc="x"><span class="techinside">symbol</span></a>, a <a href="numbers.html#%28tech._number%29" class="techoutside" data-pltdoc="x"><span class="techinside">number</span></a> (see
<a href="#%28part._parse-number%29" data-pltdoc="x">Reading Numbers</a>), or a <a href="extflonums.html#%28tech._extflonum%29" class="techoutside" data-pltdoc="x"><span class="techinside">extflonum</span></a>
(see <a href="#%28part._parse-extflonum%29" data-pltdoc="x">Reading Extflonums</a>),
except that <span class="RktInBG"><span class="hspace"></span><span class="RktIn">.</span><span class="hspace"></span></span> by itself is never
parsed as a symbol or number (unless the <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-accept-dot%29%29" class="RktValLink" data-pltdoc="x">read-accept-dot</a></span>
parameter is set to <span class="RktVal">#f</span>). A <a name="(idx._(gentag._4._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#%</span><span class="hspace"></span></span> also
starts a symbol. The resulting symbol is <a href="#%28tech._interned%29" class="techoutside" data-pltdoc="x"><span class="techinside">interned</span></a>. A successful
number or extflonum parse takes precedence over a symbol parse.</p><p><a name="(idx._(gentag._5._(lib._scribblings/reference/reference..scrbl)))"></a><a name="(idx._(gentag._6._(lib._scribblings/reference/reference..scrbl)))"></a>When the
<span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-case-sensitive%29%29" class="RktValLink" data-pltdoc="x">read-case-sensitive</a></span> <a href="eval-model.html#%28tech._parameter%29" class="techoutside" data-pltdoc="x"><span class="techinside">parameter</span></a> is set to <span class="RktVal">#f</span>,
characters in the sequence that are not quoted by <span class="RktInBG"><span class="hspace"></span><span class="RktIn">|</span><span class="hspace"></span></span> or
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">\</span><span class="hspace"></span></span> are first case-normalized. If the reader encounters
<a name="(idx._(gentag._7._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#ci</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#CI</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#Ci</span><span class="hspace"></span></span>, or
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">#cI</span><span class="hspace"></span></span>, then it recursively reads the following datum in
case-insensitive mode. If the reader encounters
<a name="(idx._(gentag._8._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#cs</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#CS</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#Cs</span><span class="hspace"></span></span>, or
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">#cS</span><span class="hspace"></span></span>, then it recursively reads the following datum in
case-sensitive mode.</p><p><table cellspacing="0" cellpadding="0"><tr><td><p>Examples:</p></td></tr><tr><td><table cellspacing="0" cellpadding="0"><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">Apple</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">string-&gt;symbol</span><span class="stt"> </span><span class="RktVal">"Apple"</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">Ap#ple</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">string-&gt;symbol</span><span class="stt"> </span><span class="RktVal">"Ap#ple"</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">Ap ple</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">string-&gt;symbol</span><span class="stt"> </span><span class="RktVal">"Ap"</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">Ap| |ple</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">string-&gt;symbol</span><span class="stt"> </span><span class="RktVal">"Ap ple"</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">Ap\ ple</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">string-&gt;symbol</span><span class="stt"> </span><span class="RktVal">"Ap ple"</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#ci Apple</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">string-&gt;symbol</span><span class="stt"> </span><span class="RktVal">"apple"</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#ci |A|pple</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">string-&gt;symbol</span><span class="stt"> </span><span class="RktVal">"Apple"</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#ci \Apple</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">string-&gt;symbol</span><span class="stt"> </span><span class="RktVal">"Apple"</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#ci#cs Apple</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">string-&gt;symbol</span><span class="stt"> </span><span class="RktVal">"Apple"</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#%Apple</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">string-&gt;symbol</span><span class="stt"> </span><span class="RktVal">"#%Apple"</span><span class="RktPn">)</span></p></td></tr></table></td></tr></table></p><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;parse-number&quot;">1.3.3<tt>&nbsp;</tt><a name="(part._parse-number)"></a><a name="(idx._(gentag._9._(lib._scribblings/reference/reference..scrbl)))"></a>Reading Numbers</h5><blockquote class="refpara"><blockquote class="refcolumn"><blockquote class="refcontent"><p><span class="imageleft"><img src="finger.png" alt="+" width="24" height="24"/></span><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=guide&amp;rel=numbers.html&amp;version=6.7" class="Sq" data-pltdoc="x">Numbers</a> in <a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=guide&amp;rel=index.html&amp;version=6.7" class="Sq" data-pltdoc="x"><span style="font-weight: bold">The Racket Guide</span></a> introduces the syntax of numbers.</p></blockquote></blockquote></blockquote><p>A sequence that does not start with a delimiter is parsed as a <a href="numbers.html#%28tech._number%29" class="techoutside" data-pltdoc="x"><span class="techinside">number</span></a>
when it matches the following grammar case-insensitively for
<span class="sroman">&#8249;<span style="font-style: italic">number<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span> (decimal), where <span style="font-style: italic">n</span> is a
meta-meta-variable in the grammar. The resulting number is <a href="#%28tech._interned%29" class="techoutside" data-pltdoc="x"><span class="techinside">interned</span></a> in
<span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-syntax%29%29" class="RktValLink" data-pltdoc="x">read-syntax</a></span> mode.</p><p>A number is optionally prefixed by an exactness specifier,
<a name="(idx._(gentag._10._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#e</span><span class="hspace"></span></span> (exact) or <a name="(idx._(gentag._11._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#i</span><span class="hspace"></span></span> (inexact),
which specifies its parsing as an exact or inexact number; see
<a href="numbers.html" data-pltdoc="x">Numbers</a> for information on number exactness. As the
non-terminal names suggest, a number that has no exactness specifier
and matches only <span class="sroman">&#8249;<span style="font-style: italic">inexact-number<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span> is normally parsed as an
inexact number, otherwise it is parsed as an exact number. If the
<span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-decimal-as-inexact%29%29" class="RktValLink" data-pltdoc="x">read-decimal-as-inexact</a></span> <a href="eval-model.html#%28tech._parameter%29" class="techoutside" data-pltdoc="x"><span class="techinside">parameter</span></a> is set to <span class="RktVal">#f</span>, then
all numbers without an exactness specifier are instead parsed as
exact.</p><p>If the reader encounters <a name="(idx._(gentag._12._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#b</span><span class="hspace"></span></span> (binary),
<a name="(idx._(gentag._13._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#o</span><span class="hspace"></span></span> (octal), <a name="(idx._(gentag._14._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#d</span><span class="hspace"></span></span> (decimal), or
<a name="(idx._(gentag._15._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#x</span><span class="hspace"></span></span> (hexadecimal), it must be followed by a
sequence that is terminated by a delimiter or end-of-file, and that
is either an <a href="extflonums.html#%28tech._extflonum%29" class="techoutside" data-pltdoc="x"><span class="techinside">extflonum</span></a> (see <a href="#%28part._parse-extflonum%29" data-pltdoc="x">Reading Extflonums</a>) or
matches the <span class="sroman">&#8249;<span style="font-style: italic">general-number<span style="vertical-align: sub; font-size: 80%">2</span></span>&#8250;</span>,
<span class="sroman">&#8249;<span style="font-style: italic">general-number<span style="vertical-align: sub; font-size: 80%">8</span></span>&#8250;</span>, <span class="sroman">&#8249;<span style="font-style: italic">general-number<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span>, or
<span class="sroman">&#8249;<span style="font-style: italic">general-number<span style="vertical-align: sub; font-size: 80%">16</span></span>&#8250;</span> grammar, respectively.</p><p>A <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#e</span><span class="hspace"></span></span> or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#i</span><span class="hspace"></span></span> followed immediately by <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#b</span><span class="hspace"></span></span>,
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">#o</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#d</span><span class="hspace"></span></span>, or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#x</span><span class="hspace"></span></span> is treated the same as the
reverse order: <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#b</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#o</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#d</span><span class="hspace"></span></span>, or
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">#x</span><span class="hspace"></span></span> followed by <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#e</span><span class="hspace"></span></span> or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#i</span><span class="hspace"></span></span>.</p><p>An <span class="sroman">&#8249;<span style="font-style: italic">exponent-mark<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span> in an inexact number serves both to specify
an exponent and to specify a numerical precision. If single-precision
IEEE floating point is supported (see <a href="numbers.html" data-pltdoc="x">Numbers</a>), the marks
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">f</span><span class="hspace"></span></span> and <span class="RktInBG"><span class="hspace"></span><span class="RktIn">s</span><span class="hspace"></span></span> specify single-precision. Otherwise, or
with any other mark, double-precision IEEE floating point is used.
In addition, single- and double-precision specials are distinct;
specials with the <span class="RktInBG"><span class="hspace"></span><span class="RktIn">.0</span><span class="hspace"></span></span> suffix, like <span class="RktVal">+nan.0</span> are
double-precision, whereas specials with the <span class="RktInBG"><span class="hspace"></span><span class="RktIn">.f</span><span class="hspace"></span></span> suffix are
single-precision.</p><p>A <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span> in an <span class="sroman">&#8249;<span style="font-style: italic">inexact<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span> number is the same as
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">0</span><span class="hspace"></span></span>, but <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span> can be used to suggest
that the digit&rsquo;s actual value is unknown.</p><p><table cellspacing="0" cellpadding="0"><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">number<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span>::=<span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">exact<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="sroman">&#8249;<span style="font-style: italic">inexact<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">exact<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span>::=<span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">exact-rational<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="sroman">&#8249;<span style="font-style: italic">exact-complex<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">exact-rational<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span>::=<span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="sroman">[</span><span class="sroman">&#8249;<span style="font-style: italic">sign</span>&#8250;</span><span class="sroman">]</span><span class="hspace">&nbsp;</span><span class="sroman">&#8249;<span style="font-style: italic">unsigned-rational<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">unsigned-rational<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span>::=<span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">unsigned-integer<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p> </p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">unsigned-integer<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">/</span><span class="hspace"></span></span><span class="hspace">&nbsp;</span><span class="sroman">&#8249;<span style="font-style: italic">unsigned-integer<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">exact-integer<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span>::=<span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="sroman">[</span><span class="sroman">&#8249;<span style="font-style: italic">sign</span>&#8250;</span><span class="sroman">]</span><span class="hspace">&nbsp;</span><span class="sroman">&#8249;<span style="font-style: italic">unsigned-integer<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">unsigned-integer<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span>::=<span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span><span style="vertical-align: super; font-size: 80%">+</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">exact-complex<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span>::=<span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">exact-rational<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span><span class="hspace">&nbsp;</span><span class="sroman">&#8249;<span style="font-style: italic">sign</span>&#8250;</span><span class="hspace">&nbsp;</span><span class="sroman">&#8249;<span style="font-style: italic">unsigned-rational<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">i</span><span class="hspace"></span></span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">inexact<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span>::=<span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">inexact-real<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="sroman">&#8249;<span style="font-style: italic">inexact-complex<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">inexact-real<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span>::=<span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="sroman">[</span><span class="sroman">&#8249;<span style="font-style: italic">sign</span>&#8250;</span><span class="sroman">]</span><span class="hspace">&nbsp;</span><span class="sroman">&#8249;<span style="font-style: italic">inexact-normal<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p> </p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">sign</span>&#8250;</span><span class="hspace">&nbsp;</span><span class="sroman">&#8249;<span style="font-style: italic">inexact-special<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">inexact-unsigned<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span>::=<span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">inexact-normal<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="sroman">&#8249;<span style="font-style: italic">inexact-special<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">inexact-normal<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span>::=<span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">inexact-simple<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span><span class="hspace">&nbsp;</span><span class="sroman">[</span><span class="sroman">&#8249;<span style="font-style: italic">exp-mark<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span> <span class="sroman">&#8249;<span style="font-style: italic">exact-integer<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span><span class="sroman">]</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">inexact-simple<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span>::=<span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">digits#<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span><span class="hspace">&nbsp;</span><span class="sroman">[</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">.</span><span class="hspace"></span></span><span class="sroman">]</span><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span><span class="sroman">*</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p> </p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="sroman">[</span><span class="sroman">&#8249;<span style="font-style: italic">unsigned-integer<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span><span class="sroman">]</span><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">.</span><span class="hspace"></span></span><span class="hspace">&nbsp;</span><span class="sroman">&#8249;<span style="font-style: italic">digits#<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p> </p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">digits#<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">/</span><span class="hspace"></span></span><span class="hspace">&nbsp;</span><span class="sroman">&#8249;<span style="font-style: italic">digits#<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">inexact-special<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span>::=<span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">inf.0</span><span class="hspace"></span></span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">nan.0</span><span class="hspace"></span></span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">inf.f</span><span class="hspace"></span></span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">nan.f</span><span class="hspace"></span></span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">digits#<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span>::=<span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span><span style="vertical-align: super; font-size: 80%">+</span><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span><span class="sroman">*</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">inexact-complex<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span>::=<span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="sroman">[</span><span class="sroman">&#8249;<span style="font-style: italic">inexact-real<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span><span class="sroman">]</span><span class="hspace">&nbsp;</span><span class="sroman">&#8249;<span style="font-style: italic">sign</span>&#8250;</span><span class="hspace">&nbsp;</span><span class="sroman">&#8249;<span style="font-style: italic">inexact-unsigned<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">i</span><span class="hspace"></span></span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p> </p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">inexact-real<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">@</span><span class="hspace"></span></span><span class="hspace">&nbsp;</span><span class="sroman">&#8249;<span style="font-style: italic">inexact-real<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">sign</span>&#8250;</span></p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span>::=<span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">+</span><span class="hspace"></span></span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">-</span><span class="hspace"></span></span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">16</span></span>&#8250;</span></p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span>::=<span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">a</span><span class="hspace"></span></span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">b</span><span class="hspace"></span></span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">c</span><span class="hspace"></span></span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">d</span><span class="hspace"></span></span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">e</span><span class="hspace"></span></span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">f</span><span class="hspace"></span></span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span></p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span>::=<span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">8</span></span>&#8250;</span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">8</span><span class="hspace"></span></span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">9</span><span class="hspace"></span></span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">8</span></span>&#8250;</span></p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span>::=<span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">2</span></span>&#8250;</span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">2</span><span class="hspace"></span></span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">3</span><span class="hspace"></span></span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">4</span><span class="hspace"></span></span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">5</span><span class="hspace"></span></span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">6</span><span class="hspace"></span></span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">7</span><span class="hspace"></span></span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">2</span></span>&#8250;</span></p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span>::=<span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">0</span><span class="hspace"></span></span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">1</span><span class="hspace"></span></span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">exp-mark<span style="vertical-align: sub; font-size: 80%">16</span></span>&#8250;</span></p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span>::=<span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">s</span><span class="hspace"></span></span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">l</span><span class="hspace"></span></span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">exp-mark<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span></p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span>::=<span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">exp-mark<span style="vertical-align: sub; font-size: 80%">16</span></span>&#8250;</span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">d</span><span class="hspace"></span></span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">e</span><span class="hspace"></span></span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">f</span><span class="hspace"></span></span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">exp-mark<span style="vertical-align: sub; font-size: 80%">8</span></span>&#8250;</span></p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span>::=<span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">exp-mark<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">exp-mark<span style="vertical-align: sub; font-size: 80%">2</span></span>&#8250;</span></p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span>::=<span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">exp-mark<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">general-number<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span>::=<span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="sroman">[</span><span class="sroman">&#8249;<span style="font-style: italic">exactness</span>&#8250;</span><span class="sroman">]</span><span class="hspace">&nbsp;</span><span class="sroman">&#8249;<span style="font-style: italic">number<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="sroman">&#8249;<span style="font-style: italic">exactness</span>&#8250;</span></p></td><td valign="baseline"><p><span class="stt"><span class="hspace">&nbsp;</span>::=<span class="hspace">&nbsp;</span></span></p></td><td valign="baseline"><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#e</span><span class="hspace"></span></span><span class="stt"><span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span>|<span class="hspace">&nbsp;</span><span class="hspace">&nbsp;</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#i</span><span class="hspace"></span></span></p></td></tr></table></p><p><table cellspacing="0" cellpadding="0"><tr><td><p>Examples:</p></td></tr><tr><td><table cellspacing="0" cellpadding="0"><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">-1</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktVal"><span class="nobreak">-1</span></span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">1/2</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">/</span><span class="stt"> </span><span class="RktVal">1</span><span class="stt"> </span><span class="RktVal">2</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">1.0</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">exact-&gt;inexact</span><span class="stt"> </span><span class="RktVal">1</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">1+2i</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">make-complex</span><span class="stt"> </span><span class="RktVal">1</span><span class="stt"> </span><span class="RktVal">2</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">1/2+3/4i</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">make-complex</span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym">/</span><span class="stt"> </span><span class="RktVal">1</span><span class="stt"> </span><span class="RktVal">2</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="RktVal">4</span><span class="RktPn">)</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">1.0+3.0e7i</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">exact-&gt;inexact</span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym">make-complex</span><span class="stt"> </span><span class="RktVal">1</span><span class="stt"> </span><span class="RktVal">30000000</span><span class="RktPn">)</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">2e5</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">exact-&gt;inexact</span><span class="stt"> </span><span class="RktVal">200000</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#i5</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">exact-&gt;inexact</span><span class="stt"> </span><span class="RktVal">5</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#e2e5</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktVal">200000</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#x2e5</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktVal">741</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#b101</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktVal">5</span></p></td></tr></table></td></tr></table></p><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;parse-extflonum&quot;">1.3.4<tt>&nbsp;</tt><a name="(part._parse-extflonum)"></a>Reading Extflonums</h5><p>An <a href="extflonums.html#%28tech._extflonum%29" class="techoutside" data-pltdoc="x"><span class="techinside">extflonum</span></a> has the same syntax as an <span class="sroman">&#8249;<span style="font-style: italic">inexact-real<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span>
that includes an <span class="sroman">&#8249;<span style="font-style: italic">exp-mark<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span>, but with <span class="RktInBG"><span class="hspace"></span><span class="RktIn">t</span><span class="hspace"></span></span> or
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">T</span><span class="hspace"></span></span> in place of the <span class="sroman">&#8249;<span style="font-style: italic">exp-mark<span style="vertical-align: sub; font-size: 80%">n</span></span>&#8250;</span>. In addition,
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">+inf.t</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">-inf.t</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">+nan.t</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">-nan.t</span><span class="hspace"></span></span>
are <a href="extflonums.html#%28tech._extflonum%29" class="techoutside" data-pltdoc="x"><span class="techinside">extflonums</span></a>. A <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#b</span><span class="hspace"></span></span>
(binary), <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#o</span><span class="hspace"></span></span> (octal), <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#d</span><span class="hspace"></span></span> (decimal), or
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">#x</span><span class="hspace"></span></span> (hexadecimal) radix specification can prefix an
extflonum, but <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#i</span><span class="hspace"></span></span> or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#e</span><span class="hspace"></span></span> cannot, and a
extflonum cannot be used to form a <a href="numbers.html#%28tech._complex._number%29" class="techoutside" data-pltdoc="x"><span class="techinside">complex number</span></a>.  The
<span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-decimal-as-inexact%29%29" class="RktValLink" data-pltdoc="x">read-decimal-as-inexact</a></span> <a href="eval-model.html#%28tech._parameter%29" class="techoutside" data-pltdoc="x"><span class="techinside">parameter</span></a> has no effect on
extflonum reading.</p><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;parse-boolean&quot;">1.3.5<tt>&nbsp;</tt><a name="(part._parse-boolean)"></a>Reading Booleans</h5><p>A <a name="(idx._(gentag._16._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#true</span><span class="hspace"></span></span>, <a name="(idx._(gentag._17._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#t</span><span class="hspace"></span></span>,
<a name="(idx._(gentag._18._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#T</span><span class="hspace"></span></span> followed by a delimiter is the input syntax
for the <a href="booleans.html#%28tech._boolean%29" class="techoutside" data-pltdoc="x"><span class="techinside">boolean</span></a> constant &ldquo;true,&rdquo; and <a name="(idx._(gentag._19._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#false</span><span class="hspace"></span></span>,
<a name="(idx._(gentag._20._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#f</span><span class="hspace"></span></span>, or <a name="(idx._(gentag._21._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#F</span><span class="hspace"></span></span> followed by a
delimiter is the complete input syntax for the <a href="booleans.html#%28tech._boolean%29" class="techoutside" data-pltdoc="x"><span class="techinside">boolean</span></a> constant
&ldquo;false.&rdquo;</p><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;parse-pair&quot;">1.3.6<tt>&nbsp;</tt><a name="(part._parse-pair)"></a>Reading Pairs and Lists</h5><p>When the reader encounters a <a name="(idx._(gentag._22._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">(</span><span class="hspace"></span></span>,
<a name="(idx._(gentag._23._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">[</span><span class="hspace"></span></span>, or <a name="(idx._(gentag._24._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">{</span><span class="hspace"></span></span>, it starts
parsing a <a href="pairs.html#%28tech._pair%29" class="techoutside" data-pltdoc="x"><span class="techinside">pair</span></a> or <a href="pairs.html#%28tech._list%29" class="techoutside" data-pltdoc="x"><span class="techinside">list</span></a>; see <a href="pairs.html" data-pltdoc="x">Pairs and Lists</a> for information on pairs
and lists.</p><p>To parse the pair or list, the reader recursively reads data
until a matching <a name="(idx._(gentag._25._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">)</span><span class="hspace"></span></span>, <a name="(idx._(gentag._26._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">]</span><span class="hspace"></span></span>, or
<a name="(idx._(gentag._27._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">}</span><span class="hspace"></span></span> (respectively) is found, and it specially handles
a delimited <span class="RktInBG"><span class="hspace"></span><span class="RktIn">.</span><span class="hspace"></span></span>.  Pairs <span class="RktInBG"><span class="hspace"></span><span class="RktIn">()</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">[]</span><span class="hspace"></span></span>, and
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">{}</span><span class="hspace"></span></span> are treated the same way, so the remainder of this
section simply uses &ldquo;parentheses&rdquo; to mean any of these pair.</p><p>If the reader finds no delimited <a name="(idx._(gentag._28._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">.</span><span class="hspace"></span></span> among the elements
between parentheses, then it produces a list containing the results of
the recursive reads.</p><p>If the reader finds two data between the matching parentheses
that are separated by a delimited <span class="RktInBG"><span class="hspace"></span><span class="RktIn">.</span><span class="hspace"></span></span>, then it creates a
pair. More generally, if it finds two or more data where the
last datum is preceded by a delimited <span class="RktInBG"><span class="hspace"></span><span class="RktIn">.</span><span class="hspace"></span></span>, then it constructs
nested pairs: the next-to-last element is paired with the last, then
the third-to-last datum is paired with that pair, and so on.</p><p>If the reader finds three or more data between the matching
parentheses, and if a pair of delimited <span class="RktInBG"><span class="hspace"></span><span class="RktIn">.</span><span class="hspace"></span></span>s surrounds any
other than the first and last elements, the result is a list
containing the element surrounded by <span class="RktInBG"><span class="hspace"></span><span class="RktIn">.</span><span class="hspace"></span></span>s as the first
element, followed by the others in the read order. This convention
supports a kind of <a name="(idx._(gentag._29._(lib._scribblings/reference/reference..scrbl)))"></a>infix notation at the reader level.</p><p>In <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-syntax%29%29" class="RktValLink" data-pltdoc="x">read-syntax</a></span> mode, the recursive reads for the pair/list
elements are themselves in <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-syntax%29%29" class="RktValLink" data-pltdoc="x">read-syntax</a></span> mode, so that the
result is a list or pair of syntax objects that is itself wrapped as a
syntax object. If the reader constructs nested pairs because the input
included a single delimited <span class="RktInBG"><span class="hspace"></span><span class="RktIn">.</span><span class="hspace"></span></span>, then only the innermost pair
and outermost pair are wrapped as syntax objects.</p><p>Whether wrapping a pair or list, if the pair or list was formed with
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">[</span><span class="hspace"></span></span> and <span class="RktInBG"><span class="hspace"></span><span class="RktIn">]</span><span class="hspace"></span></span>, then a <a name="(idx._(gentag._30._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktVal">'</span><span class="RktVal">paren-shape</span>
property is attached to the result with the value <span class="RktVal">#\[</span>. If the
<span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-square-bracket-with-tag%29%29" class="RktValLink" data-pltdoc="x">read-square-bracket-with-tag</a></span> <a href="eval-model.html#%28tech._parameter%29" class="techoutside" data-pltdoc="x"><span class="techinside">parameter</span></a> is set to
<span class="RktVal">#t</span>, then the resulting pair or list is wrapped by the
equivalent of <span class="RktPn">(</span><span class="RktSym"><a href="pairs.html#%28def._%28%28quote._~23~25kernel%29._cons%29%29" class="RktValLink" data-pltdoc="x">cons</a></span><span class="stt"> </span><span class="RktVal">'</span><span class="RktVal">#%brackets</span><span class="stt"> </span><span class="RktVar">pair-or-list</span><span class="RktPn">)</span>.</p><p>Similarly, if the list or pair was formed with <span class="RktInBG"><span class="hspace"></span><span class="RktIn">{</span><span class="hspace"></span></span> and
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">}</span><span class="hspace"></span></span>, then a <span class="RktVal">'</span><span class="RktVal">paren-shape</span> property is attached to
the result with the value <span class="RktVal">#\{</span>.  If the
<span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-curly-brace-with-tag%29%29" class="RktValLink" data-pltdoc="x">read-curly-brace-with-tag</a></span> <a href="eval-model.html#%28tech._parameter%29" class="techoutside" data-pltdoc="x"><span class="techinside">parameter</span></a> is set to
<span class="RktVal">#t</span>, then the resulting pair or list is wrapped by the
equivalent of <span class="RktPn">(</span><span class="RktSym"><a href="pairs.html#%28def._%28%28quote._~23~25kernel%29._cons%29%29" class="RktValLink" data-pltdoc="x">cons</a></span><span class="stt"> </span><span class="RktVal">'</span><span class="RktVal">#%braces</span><span class="stt"> </span><span class="RktVar">pair-or-list</span><span class="RktPn">)</span>.</p><p>If a delimited <span class="RktInBG"><span class="hspace"></span><span class="RktIn">.</span><span class="hspace"></span></span> appears in any other configuration, then
the <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread%29%29" class="RktValLink" data-pltdoc="x">exn:fail:read</a></span> exception is raised. Similarly, if the reader encounters a
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">)</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">]</span><span class="hspace"></span></span>, or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">}</span><span class="hspace"></span></span> that does not end a list
being parsed, then the <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread%29%29" class="RktValLink" data-pltdoc="x">exn:fail:read</a></span> exception is raised.</p><p><table cellspacing="0" cellpadding="0"><tr><td><p>Examples:</p></td></tr><tr><td><table cellspacing="0" cellpadding="0"><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">()</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">list</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">(1 2 3)</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">list</span><span class="stt"> </span><span class="RktVal">1</span><span class="stt"> </span><span class="RktVal">2</span><span class="stt"> </span><span class="RktVal">3</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">{1 2 3}</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">list</span><span class="stt"> </span><span class="RktVal">1</span><span class="stt"> </span><span class="RktVal">2</span><span class="stt"> </span><span class="RktVal">3</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">[1 2 3]</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">list</span><span class="stt"> </span><span class="RktVal">1</span><span class="stt"> </span><span class="RktVal">2</span><span class="stt"> </span><span class="RktVal">3</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">(1 (2) 3)</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">list</span><span class="stt"> </span><span class="RktVal">1</span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym">list</span><span class="stt"> </span><span class="RktVal">2</span><span class="RktPn">)</span><span class="stt"> </span><span class="RktVal">3</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">(1 . 3)</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">cons</span><span class="stt"> </span><span class="RktVal">1</span><span class="stt"> </span><span class="RktVal">3</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">(1 . (3))</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">list</span><span class="stt"> </span><span class="RktVal">1</span><span class="stt"> </span><span class="RktVal">3</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">(1 . 2 . 3)</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">list</span><span class="stt"> </span><span class="RktVal">2</span><span class="stt"> </span><span class="RktVal">1</span><span class="stt"> </span><span class="RktVal">3</span><span class="RktPn">)</span></p></td></tr></table></td></tr></table></p><p>If the <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-square-bracket-as-paren%29%29" class="RktValLink" data-pltdoc="x">read-square-bracket-as-paren</a></span> and
<span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-square-bracket-with-tag%29%29" class="RktValLink" data-pltdoc="x">read-square-bracket-with-tag</a></span> <a href="eval-model.html#%28tech._parameter%29" class="techoutside" data-pltdoc="x"><span class="techinside">parameter</span></a>s are set to
<span class="RktVal">#f</span>, then when the reader encounters <span class="RktInBG"><span class="hspace"></span><span class="RktIn">[</span><span class="hspace"></span></span> and
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">]</span><span class="hspace"></span></span>, the <span class="RktVal">"exn:fail:read"</span> exception is raised. Similarly, if the
<span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-curly-brace-as-paren%29%29" class="RktValLink" data-pltdoc="x">read-curly-brace-as-paren</a></span> and
<span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-curly-brace-with-tag%29%29" class="RktValLink" data-pltdoc="x">read-curly-brace-with-tag</a></span> <a href="eval-model.html#%28tech._parameter%29" class="techoutside" data-pltdoc="x"><span class="techinside">parameter</span></a>s are set to
<span class="RktVal">#f</span>, then when the reader encounters <span class="RktInBG"><span class="hspace"></span><span class="RktIn">{</span><span class="hspace"></span></span> and
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">}</span><span class="hspace"></span></span>, the <span class="RktVal">"exn:fail:read"</span> exception is raised.</p><p>If the <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-accept-dot%29%29" class="RktValLink" data-pltdoc="x">read-accept-dot</a></span> <a href="eval-model.html#%28tech._parameter%29" class="techoutside" data-pltdoc="x"><span class="techinside">parameter</span></a> is set to
<span class="RktVal">#f</span>, then a delimited <span class="RktInBG"><span class="hspace"></span><span class="RktIn">.</span><span class="hspace"></span></span> triggers an
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread%29%29" class="RktValLink" data-pltdoc="x">exn:fail:read</a></span> exception. If the
<span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-accept-infix-dot%29%29" class="RktValLink" data-pltdoc="x">read-accept-infix-dot</a></span> <a href="eval-model.html#%28tech._parameter%29" class="techoutside" data-pltdoc="x"><span class="techinside">parameter</span></a> is set to <span class="RktVal">#f</span>,
then multiple delimited <span class="RktInBG"><span class="hspace"></span><span class="RktIn">.</span><span class="hspace"></span></span>s trigger an <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread%29%29" class="RktValLink" data-pltdoc="x">exn:fail:read</a></span>
exception, instead of the infix conversion.</p><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;parse-string&quot;">1.3.7<tt>&nbsp;</tt><a name="(part._parse-string)"></a><a name="(idx._(gentag._31._(lib._scribblings/reference/reference..scrbl)))"></a><a name="(idx._(gentag._32._(lib._scribblings/reference/reference..scrbl)))"></a><a name="(idx._(gentag._33._(lib._scribblings/reference/reference..scrbl)))"></a>Reading Strings</h5><blockquote class="refpara"><blockquote class="refcolumn"><blockquote class="refcontent"><p><span class="imageleft"><img src="finger.png" alt="+" width="24" height="24"/></span><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=guide&amp;rel=strings.html&amp;version=6.7" class="Sq" data-pltdoc="x">Strings (Unicode)</a> in <a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=guide&amp;rel=index.html&amp;version=6.7" class="Sq" data-pltdoc="x"><span style="font-weight: bold">The Racket Guide</span></a> introduces the syntax of strings.</p></blockquote></blockquote></blockquote><p>When the reader encounters <a name="(idx._(gentag._34._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">"</span><span class="hspace"></span></span>, it begins parsing
characters to form a <a href="strings.html#%28tech._string%29" class="techoutside" data-pltdoc="x"><span class="techinside">string</span></a>. The string continues until it is
terminated by another <span class="RktInBG"><span class="hspace"></span><span class="RktIn">"</span><span class="hspace"></span></span> (that is not escaped by
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">\</span><span class="hspace"></span></span>). The resulting string is <a href="#%28tech._interned%29" class="techoutside" data-pltdoc="x"><span class="techinside">interned</span></a> in
<span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-syntax%29%29" class="RktValLink" data-pltdoc="x">read-syntax</a></span> mode.</p><p>Within a string sequence, the following escape sequences are
 recognized:</p><ul><li><p><a name="(idx._(gentag._35._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">\a</span><span class="hspace"></span></span>: alarm (ASCII 7)</p></li><li><p><a name="(idx._(gentag._36._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">\b</span><span class="hspace"></span></span>: backspace (ASCII 8)</p></li><li><p><a name="(idx._(gentag._37._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">\t</span><span class="hspace"></span></span>: tab (ASCII 9)</p></li><li><p><a name="(idx._(gentag._38._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">\n</span><span class="hspace"></span></span>: linefeed (ASCII 10)</p></li><li><p><a name="(idx._(gentag._39._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">\v</span><span class="hspace"></span></span>: vertical tab (ASCII 11)</p></li><li><p><a name="(idx._(gentag._40._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">\f</span><span class="hspace"></span></span>: formfeed (ASCII 12)</p></li><li><p><a name="(idx._(gentag._41._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">\r</span><span class="hspace"></span></span>: return (ASCII 13)</p></li><li><p><a name="(idx._(gentag._42._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">\e</span><span class="hspace"></span></span>: escape (ASCII 27)</p></li><li><p><a name="(idx._(gentag._43._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">\"</span><span class="hspace"></span></span>: double-quotes (without terminating the string)</p></li><li><p><a name="(idx._(gentag._44._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">\'</span><span class="hspace"></span></span>: quote (i.e., the backslash has no effect)</p></li><li><p><a name="(idx._(gentag._45._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">\\</span><span class="hspace"></span></span>: backslash (i.e., the second is not an escaping backslash)</p></li><li><p><a name="(idx._(gentag._46._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">\</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">8</span></span>&#8250;</span><span class="sroman"><span style="vertical-align: super; font-size: 80%">{1,3}</span></span>:
Unicode for the octal number specified by digit<span style="vertical-align: sub; font-size: 80%">8</span><span class="sroman"><span style="vertical-align: super; font-size: 80%">{1,3}</span></span> (i.e., 1 to 3 <span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">8</span></span>&#8250;</span>s), where
each <span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">8</span></span>&#8250;</span> is <span class="RktInBG"><span class="hspace"></span><span class="RktIn">0</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">1</span><span class="hspace"></span></span>,
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">2</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">3</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">4</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">5</span><span class="hspace"></span></span>,
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">6</span><span class="hspace"></span></span>, or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">7</span><span class="hspace"></span></span>. A longer form takes precedence
over a shorter form, and the resulting octal number must be
between 0 and 255 decimal, otherwise the
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread%29%29" class="RktValLink" data-pltdoc="x">exn:fail:read</a></span> exception is raised.</p></li><li><p><a name="(idx._(gentag._47._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">\x</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">16</span></span>&#8250;</span><span class="sroman"><span style="vertical-align: super; font-size: 80%">{1,2}</span></span>: Unicode for the hexadecimal
number specified by <span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">16</span></span>&#8250;</span><span class="sroman"><span style="vertical-align: super; font-size: 80%">{1,2}</span></span>,
where each <span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">16</span></span>&#8250;</span> is <span class="RktInBG"><span class="hspace"></span><span class="RktIn">0</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">1</span><span class="hspace"></span></span>,
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">2</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">3</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">4</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">5</span><span class="hspace"></span></span>,
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">6</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">7</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">8</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">9</span><span class="hspace"></span></span>,
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">a</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">b</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">c</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">d</span><span class="hspace"></span></span>,
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">e</span><span class="hspace"></span></span>, or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">f</span><span class="hspace"></span></span> (case-insensitive). The longer form
takes precedence over the shorter form.</p></li><li><p><a name="(idx._(gentag._48._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">\u</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">16</span></span>&#8250;</span><span class="sroman"><span style="vertical-align: super; font-size: 80%">{1,4}</span></span>: like <span class="RktInBG"><span class="hspace"></span><span class="RktIn">\x</span><span class="hspace"></span></span>, but with up to
four hexadecimal digits (longer sequences take precedence).
The resulting hexadecimal number must be a valid argument to
<span class="RktSym"><a href="characters.html#%28def._%28%28quote._~23~25kernel%29._integer-~3echar%29%29" class="RktValLink" data-pltdoc="x">integer-&gt;char</a></span>, otherwise the
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread%29%29" class="RktValLink" data-pltdoc="x">exn:fail:read</a></span> exception is raised&#8212;<wbr></wbr>unless the encoding continues with
another <span class="RktInBG"><span class="hspace"></span><span class="RktIn">\u</span><span class="hspace"></span></span> to form a surrogate-style encoding.</p></li><li><p><a name="(idx._(gentag._49._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">\u</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">16</span></span>&#8250;</span><span class="sroman"><span style="vertical-align: super; font-size: 80%">{4,4}</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">\u</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">16</span></span>&#8250;</span><span class="sroman"><span style="vertical-align: super; font-size: 80%">{4,4}</span></span>: like <span class="RktInBG"><span class="hspace"></span><span class="RktIn">\u</span><span class="hspace"></span></span>, but for two
hexadecimal numbers, where the first is in the range
<span class="RktVal">#xD800</span><span class="RktMeta"></span> to <span class="RktVal">#xDBFF</span><span class="RktMeta"></span> and the second is in the
range <span class="RktVal">#xDC00</span><span class="RktMeta"></span> to <span class="RktVal">#xDFFF</span><span class="RktMeta"></span>; the resulting
character is the one represented by the numbers as a UTF-16
surrogate pair.</p></li><li><p><a name="(idx._(gentag._50._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">\U</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">16</span></span>&#8250;</span><span class="sroman"><span style="vertical-align: super; font-size: 80%">{1,8}</span></span>: like <span class="RktInBG"><span class="hspace"></span><span class="RktIn">\x</span><span class="hspace"></span></span>, but with up
to eight hexadecimal digits (longer sequences take precedence).
The resulting hexadecimal number must be a valid argument to
<span class="RktSym"><a href="characters.html#%28def._%28%28quote._~23~25kernel%29._integer-~3echar%29%29" class="RktValLink" data-pltdoc="x">integer-&gt;char</a></span>, otherwise the
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread%29%29" class="RktValLink" data-pltdoc="x">exn:fail:read</a></span> exception is raised.</p></li><li><p><a name="(idx._(gentag._51._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">\</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">newline</span>&#8250;</span>: elided, where
<span class="sroman">&#8249;<span style="font-style: italic">newline</span>&#8250;</span> is either a linefeed, carriage return, or
carriage return&ndash;linefeed combination. This convention allows
single-line strings to span multiple lines in the source.</p></li></ul><p>If the reader encounters any other use of a backslash in a string
constant, the <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread%29%29" class="RktValLink" data-pltdoc="x">exn:fail:read</a></span> exception is raised.</p><blockquote class="refpara"><blockquote class="refcolumn"><blockquote class="refcontent"><p><span class="imageleft"><img src="finger.png" alt="+" width="24" height="24"/></span><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=guide&amp;rel=bytestrings.html&amp;version=6.7" class="Sq" data-pltdoc="x">Bytes and Byte Strings</a> in <a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=guide&amp;rel=index.html&amp;version=6.7" class="Sq" data-pltdoc="x"><span style="font-weight: bold">The Racket Guide</span></a> introduces the syntax of byte strings.</p></blockquote></blockquote></blockquote><p>A string constant preceded by <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span> is parsed as a
<a href="bytestrings.html#%28tech._byte._string%29" class="techoutside" data-pltdoc="x"><span class="techinside">byte string</span></a>. (That is, <a name="(idx._(gentag._52._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#"</span><span class="hspace"></span></span> starts a byte-string
literal.) See <a href="bytestrings.html" data-pltdoc="x">Byte Strings</a> for information on byte
strings. The resulting byte string is <a href="#%28tech._interned%29" class="techoutside" data-pltdoc="x"><span class="techinside">interned</span></a> in
<span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-syntax%29%29" class="RktValLink" data-pltdoc="x">read-syntax</a></span> mode.
Byte-string constants support the same escape sequences as
character strings, except <span class="RktInBG"><span class="hspace"></span><span class="RktIn">\u</span><span class="hspace"></span></span> and <span class="RktInBG"><span class="hspace"></span><span class="RktIn">\U</span><span class="hspace"></span></span>. Otherwise, each
character within the byte-string quotes must have a Unicode code-point number
in the range 0 to 255, which is used as the corresponding byte&rsquo;s value; if
a character is not in that range, the <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread%29%29" class="RktValLink" data-pltdoc="x">exn:fail:read</a></span> exception is raised.</p><p>When the reader encounters <a name="(idx._(gentag._53._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#&lt;&lt;</span><span class="hspace"></span></span>, it starts parsing a
<a name="(idx._(gentag._54._(lib._scribblings/reference/reference..scrbl)))"></a><span style="font-style: italic">here string</span>. The characters following <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#&lt;&lt;</span><span class="hspace"></span></span> until
a newline character define a terminator for the string. The content of
the string includes all characters between the <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#&lt;&lt;</span><span class="hspace"></span></span> line and
a line whose only content is the specified terminator. More precisely,
the content of the string starts after a newline following
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">#&lt;&lt;</span><span class="hspace"></span></span>, and it ends before a newline that is followed by the
terminator, where the terminator is itself followed by either a
newline or end-of-file. No escape sequences are recognized between the
starting and terminating lines; all characters are included in the
string (and terminator) literally. A return character is not treated
as a line separator in this context. If no characters appear between
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">#&lt;&lt;</span><span class="hspace"></span></span> and a newline or end-of-file, or if an end-of-file is
encountered before a terminating line, the <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread%29%29" class="RktValLink" data-pltdoc="x">exn:fail:read</a></span> exception is raised.</p><p><table cellspacing="0" cellpadding="0"><tr><td><p>Examples:</p></td></tr><tr><td><table cellspacing="0" cellpadding="0"><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">"Apple"</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktVal"><span class="stt">"Apple"</span></span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">"\x41pple"</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktVal"><span class="stt">"Apple"</span></span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">"\"Apple\""</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktVal"><span class="stt">"\x22Apple\x22"</span></span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">"\\"</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktVal"><span class="stt">"\x5C"</span></span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#"Apple"</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">bytes</span><span class="stt"> </span><span class="RktVal">65</span><span class="stt"> </span><span class="RktVal">112</span><span class="stt"> </span><span class="RktVal">112</span><span class="stt"> </span><span class="RktVal">108</span><span class="stt"> </span><span class="RktVal">101</span><span class="RktPn">)</span></p></td></tr></table></td></tr></table></p><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;parse-quote&quot;">1.3.8<tt>&nbsp;</tt><a name="(part._parse-quote)"></a>Reading Quotes</h5><p>When the reader encounters <a name="(idx._(gentag._55._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">'</span><span class="hspace"></span></span>, it recursively
reads one datum and forms a new list containing the <a href="symbols.html#%28tech._symbol%29" class="techoutside" data-pltdoc="x"><span class="techinside">symbol</span></a>
<span class="RktVal">'</span><span class="RktVal">quote</span> and the following datum. This convention is mainly
useful for reading Racket code, where <span class="RktVal">'</span><span class="RktVal">s</span> can be used as a
shorthand for <span class="RktPn">(</span><span class="RktSym">quote</span><span class="stt"> </span><span class="RktVal">s</span><span class="RktPn">)</span>.</p><p>Several other sequences are recognized and transformed in a similar
way. Longer prefixes take precedence over short ones:</p><p><table cellspacing="0" cellpadding="0"><tr><td><p><span class="hspace">&nbsp;</span></p></td><td><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">'</span><span class="hspace"></span></span></p></td><td><p><span class="hspace">&nbsp;</span>adds<span class="hspace">&nbsp;</span></p></td><td><p><span class="RktSym"><a href="quote.html#%28form._%28%28quote._~23~25kernel%29._quote%29%29" class="RktStxLink" data-pltdoc="x">quote</a></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;</span></p></td><td><p><a name="(idx._(gentag._56._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">`</span><span class="hspace"></span></span></p></td><td><p><span class="hspace">&nbsp;</span>adds<span class="hspace">&nbsp;</span></p></td><td><p><span class="RktSym"><a href="quasiquote.html#%28form._%28%28lib._racket%2Fprivate%2Fletstx-scheme..rkt%29._quasiquote%29%29" class="RktStxLink" data-pltdoc="x">quasiquote</a></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;</span></p></td><td><p><a name="(idx._(gentag._57._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">,</span><span class="hspace"></span></span></p></td><td><p><span class="hspace">&nbsp;</span>adds<span class="hspace">&nbsp;</span></p></td><td><p><span class="RktSym"><a href="quasiquote.html#%28form._%28%28quote._~23~25kernel%29._unquote%29%29" class="RktStxLink" data-pltdoc="x">unquote</a></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;</span></p></td><td><p><a name="(idx._(gentag._58._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">,@</span><span class="hspace"></span></span></p></td><td><p><span class="hspace">&nbsp;</span>adds<span class="hspace">&nbsp;</span></p></td><td><p><span class="RktSym"><a href="quasiquote.html#%28form._%28%28quote._~23~25kernel%29._unquote-splicing%29%29" class="RktStxLink" data-pltdoc="x">unquote-splicing</a></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;</span></p></td><td><p><a name="(idx._(gentag._59._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#'</span><span class="hspace"></span></span></p></td><td><p><span class="hspace">&nbsp;</span>adds<span class="hspace">&nbsp;</span></p></td><td><p><span class="RktSym"><a href="stx-patterns.html#%28form._%28%28lib._racket%2Fprivate%2Fstxcase-scheme..rkt%29._syntax%29%29" class="RktStxLink" data-pltdoc="x">syntax</a></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;</span></p></td><td><p><a name="(idx._(gentag._60._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#`</span><span class="hspace"></span></span></p></td><td><p><span class="hspace">&nbsp;</span>adds<span class="hspace">&nbsp;</span></p></td><td><p><span class="RktSym"><a href="stx-patterns.html#%28form._%28%28lib._racket%2Fprivate%2Fqqstx..rkt%29._quasisyntax%29%29" class="RktStxLink" data-pltdoc="x">quasisyntax</a></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;</span></p></td><td><p><a name="(idx._(gentag._61._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#,</span><span class="hspace"></span></span></p></td><td><p><span class="hspace">&nbsp;</span>adds<span class="hspace">&nbsp;</span></p></td><td><p><span class="RktSym"><a href="stx-patterns.html#%28form._%28%28lib._racket%2Fprivate%2Fqqstx..rkt%29._unsyntax%29%29" class="RktStxLink" data-pltdoc="x">unsyntax</a></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;</span></p></td><td><p><a name="(idx._(gentag._62._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#,@</span><span class="hspace"></span></span></p></td><td><p><span class="hspace">&nbsp;</span>adds<span class="hspace">&nbsp;</span></p></td><td><p><span class="RktSym"><a href="stx-patterns.html#%28form._%28%28lib._racket%2Fprivate%2Fqqstx..rkt%29._unsyntax-splicing%29%29" class="RktStxLink" data-pltdoc="x">unsyntax-splicing</a></span></p></td></tr></table></p><p><table cellspacing="0" cellpadding="0"><tr><td><p>Examples:</p></td></tr><tr><td><table cellspacing="0" cellpadding="0"><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">'apple</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">list</span><span class="stt"> </span><span class="RktVal">'</span><span class="RktVal">quote</span><span class="stt"> </span><span class="RktVal">'</span><span class="RktVal">apple</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">`(1 ,2)</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">list</span><span class="stt"> </span><span class="RktVal">'</span><span class="RktVal">quasiquote</span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym">list</span><span class="stt"> </span><span class="RktVal">1</span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym">list</span><span class="stt"> </span><span class="RktVal">'</span><span class="RktVal">unquote</span><span class="stt"> </span><span class="RktVal">2</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></p></td></tr></table></td></tr></table></p><p>The <span class="RktInBG"><span class="hspace"></span><span class="RktIn">`</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">,</span><span class="hspace"></span></span>, and <span class="RktInBG"><span class="hspace"></span><span class="RktIn">,@</span><span class="hspace"></span></span> forms are disabled when
the <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-accept-quasiquote%29%29" class="RktValLink" data-pltdoc="x">read-accept-quasiquote</a></span> <a href="eval-model.html#%28tech._parameter%29" class="techoutside" data-pltdoc="x"><span class="techinside">parameter</span></a> is set to
<span class="RktVal">#f</span>, in which case the <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread%29%29" class="RktValLink" data-pltdoc="x">exn:fail:read</a></span> exception is raised instead.</p><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;parse-comment&quot;">1.3.9<tt>&nbsp;</tt><a name="(part._parse-comment)"></a>Reading Comments</h5><p>A <a name="(idx._(gentag._63._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">;</span><span class="hspace"></span></span> starts a line comment. When the reader
encounters <span class="RktInBG"><span class="hspace"></span><span class="RktIn">;</span><span class="hspace"></span></span>, it skips past all characters until the
next linefeed (ASCII 10), carriage return (ASCII 13), next-line
(Unicode <span class="RktVal">133</span>), line-separator (Unicode <span class="RktVal">8232</span>),
or paragraph-separator (Unicode <span class="RktVal">8233</span>) character.</p><p>A <a name="(idx._(gentag._64._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#|</span><span class="hspace"></span></span> starts a nestable block comment.  When the
reader encounters <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#|</span><span class="hspace"></span></span>, it skips past all characters
until a closing <span class="RktInBG"><span class="hspace"></span><span class="RktIn">|#</span><span class="hspace"></span></span>. Pairs of matching <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#|</span><span class="hspace"></span></span> and
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">|#</span><span class="hspace"></span></span> can be nested.</p><p>A <a name="(idx._(gentag._65._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#;</span><span class="hspace"></span></span> starts an S-expression comment. When the
reader encounters <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#;</span><span class="hspace"></span></span>, it recursively reads one datum, and
then discards it (continuing on to the next datum for the read
result).</p><p>A <a name="(idx._(gentag._66._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#!</span><span class="hspace">&nbsp;</span></span> (which is <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#!</span><span class="hspace"></span></span> followed by a space)
or <a name="(idx._(gentag._67._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#!/</span><span class="hspace"></span></span> starts a line comment that can be
continued to the next line by ending a line with <span class="RktInBG"><span class="hspace"></span><span class="RktIn">\</span><span class="hspace"></span></span>. This
form of comment normally appears at the beginning of a Unix script
file.</p><p><table cellspacing="0" cellpadding="0"><tr><td><p>Examples:</p></td></tr><tr><td><table cellspacing="0" cellpadding="0"><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">; comment</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span style="font-style: italic">nothing</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#| a |# 1</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktVal">1</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#| #| a |# 1 |# 2</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktVal">2</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#;1 2</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktVal">2</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#!/bin/sh</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span style="font-style: italic">nothing</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#! /bin/sh</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span style="font-style: italic">nothing</span></p></td></tr></table></td></tr></table></p><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;parse-vector&quot;">1.3.10<tt>&nbsp;</tt><a name="(part._parse-vector)"></a>Reading Vectors</h5><p>When the reader encounters a <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#(</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#[</span><span class="hspace"></span></span>, or
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">#{</span><span class="hspace"></span></span>, it starts parsing a <a href="vectors.html#%28tech._vector%29" class="techoutside" data-pltdoc="x"><span class="techinside">vector</span></a>; see <a href="vectors.html" data-pltdoc="x">Vectors</a> for
information on vectors. A <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#fl</span><span class="hspace"></span></span> in place of <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span>
starts an <a href="flonums.html#%28tech._flvector%29" class="techoutside" data-pltdoc="x"><span class="techinside">flvector</span></a>, but is not allowed in <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-syntax%29%29" class="RktValLink" data-pltdoc="x">read-syntax</a></span> mode;
see <a href="flonums.html#%28part._flvectors%29" data-pltdoc="x">Flonum Vectors</a> for information on flvectors.
A <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#fx</span><span class="hspace"></span></span> in place of <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span>
starts an <a href="fixnums.html#%28tech._fxvector%29" class="techoutside" data-pltdoc="x"><span class="techinside">fxvector</span></a>, but is not allowed in <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-syntax%29%29" class="RktValLink" data-pltdoc="x">read-syntax</a></span> mode;
see <a href="fixnums.html#%28part._fxvectors%29" data-pltdoc="x">Fixnum Vectors</a> for information on fxvectors.
The <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#[</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#{</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#fl[</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#fl{</span><span class="hspace"></span></span>,
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">#fx[</span><span class="hspace"></span></span>, and <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#fx{</span><span class="hspace"></span></span> forms can be disabled through
the <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-square-bracket-as-paren%29%29" class="RktValLink" data-pltdoc="x">read-square-bracket-as-paren</a></span> and
<span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-curly-brace-as-paren%29%29" class="RktValLink" data-pltdoc="x">read-curly-brace-as-paren</a></span> <a href="eval-model.html#%28tech._parameter%29" class="techoutside" data-pltdoc="x"><span class="techinside">parameters</span></a>.</p><p>The elements of the vector are recursively read until a matching
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">)</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">]</span><span class="hspace"></span></span>, or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">}</span><span class="hspace"></span></span> is found, just as for
lists (see <a href="#%28part._parse-pair%29" data-pltdoc="x">Reading Pairs and Lists</a>). A delimited <span class="RktInBG"><span class="hspace"></span><span class="RktIn">.</span><span class="hspace"></span></span> is not
allowed among the vector elements. In the case of <a href="flonums.html#%28tech._flvector%29" class="techoutside" data-pltdoc="x"><span class="techinside">flvectors</span></a>,
the recursive read for element is implicitly prefixed with <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#i</span><span class="hspace"></span></span>
and must produce a <a href="numbers.html#%28tech._flonum%29" class="techoutside" data-pltdoc="x"><span class="techinside">flonum</span></a>. In the case of <a href="fixnums.html#%28tech._fxvector%29" class="techoutside" data-pltdoc="x"><span class="techinside">fxvectors</span></a>,
the recursive read for element is implicitly prefixed with <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#e</span><span class="hspace"></span></span>
and must produce a <a href="numbers.html#%28tech._fixnum%29" class="techoutside" data-pltdoc="x"><span class="techinside">fixnum</span></a>.</p><p>An optional vector length can be specified between <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#fl</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#fx</span><span class="hspace"></span></span>  and
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">(</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">[</span><span class="hspace"></span></span>, or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">{</span><span class="hspace"></span></span>. The size is specified
using a sequence of decimal digits, and the number of elements
provided for the vector must be no more than the specified size. If
fewer elements are provided, the last provided element is used for the
remaining vector slots; if no elements are provided, then <span class="RktVal">0</span>
is used for all slots.</p><p>In <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-syntax%29%29" class="RktValLink" data-pltdoc="x">read-syntax</a></span> mode, each recursive read for vector
elements is also in <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-syntax%29%29" class="RktValLink" data-pltdoc="x">read-syntax</a></span> mode, so that the wrapped
vector&rsquo;s elements are also wrapped as syntax objects, and the vector is
immutable.</p><p><table cellspacing="0" cellpadding="0"><tr><td><p>Examples:</p></td></tr><tr><td><table cellspacing="0" cellpadding="0"><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#(1 apple 3)</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">vector</span><span class="stt"> </span><span class="RktVal">1</span><span class="stt"> </span><span class="RktVal">'</span><span class="RktVal">apple</span><span class="stt"> </span><span class="RktVal">3</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#3("apple" "banana")</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">vector</span><span class="stt"> </span><span class="RktVal">"apple"</span><span class="stt"> </span><span class="RktVal">"banana"</span><span class="stt"> </span><span class="RktVal">"banana"</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#3()</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">vector</span><span class="stt"> </span><span class="RktVal">0</span><span class="stt"> </span><span class="RktVal">0</span><span class="stt"> </span><span class="RktVal">0</span><span class="RktPn">)</span></p></td></tr></table></td></tr></table></p><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;parse-structure&quot;">1.3.11<tt>&nbsp;</tt><a name="(part._parse-structure)"></a>Reading Structures</h5><p>When the reader encounters a <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#s(</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#s[</span><span class="hspace"></span></span>, or
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">#s{</span><span class="hspace"></span></span>, it starts parsing an instance of a <a href="structures.html#%28tech._prefab%29" class="techoutside" data-pltdoc="x"><span class="techinside">prefab</span></a>
<a href="structures.html#%28tech._structure._type%29" class="techoutside" data-pltdoc="x"><span class="techinside">structure type</span></a>; see <a href="structures.html" data-pltdoc="x">Structures</a> for information on
<a href="structures.html#%28tech._structure._type%29" class="techoutside" data-pltdoc="x"><span class="techinside">structure types</span></a>.  The <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#s[</span><span class="hspace"></span></span> and <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#s{</span><span class="hspace"></span></span> forms
can be disabled through the <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-square-bracket-as-paren%29%29" class="RktValLink" data-pltdoc="x">read-square-bracket-as-paren</a></span> and
<span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-curly-brace-as-paren%29%29" class="RktValLink" data-pltdoc="x">read-curly-brace-as-paren</a></span> <a href="eval-model.html#%28tech._parameter%29" class="techoutside" data-pltdoc="x"><span class="techinside">parameters</span></a>.</p><p>The elements of the structure are recursively read until a matching
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">)</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">]</span><span class="hspace"></span></span>, or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">}</span><span class="hspace"></span></span> is found, just as for lists
(see <a href="#%28part._parse-pair%29" data-pltdoc="x">Reading Pairs and Lists</a>). A single delimited <span class="RktInBG"><span class="hspace"></span><span class="RktIn">.</span><span class="hspace"></span></span> is not
allowed among the elements, but two <span class="RktInBG"><span class="hspace"></span><span class="RktIn">.</span><span class="hspace"></span></span>s can be used as in a
list for an infix conversion.</p><p>The first element is used as the structure descriptor, and it must
have the form (when quoted) of a possible argument to
<span class="RktSym"><a href="structutils.html#%28def._%28%28quote._~23~25kernel%29._make-prefab-struct%29%29" class="RktValLink" data-pltdoc="x">make-prefab-struct</a></span>; in the simplest case, it can be a
symbol. The remaining elements correspond to field values within the
structure.</p><p>In <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-syntax%29%29" class="RktValLink" data-pltdoc="x">read-syntax</a></span> mode, the structure type must not have any
mutable fields. The structure&rsquo;s elements are read in
<span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-syntax%29%29" class="RktValLink" data-pltdoc="x">read-syntax</a></span> mode, so that the wrapped structure&rsquo;s elements
are also wrapped as syntax objects.</p><p>If the first structure element is not a valid <a href="structures.html#%28tech._prefab%29" class="techoutside" data-pltdoc="x"><span class="techinside">prefab</span></a> structure
type key, or if the number of provided fields is inconsistent with the
indicated <a href="structures.html#%28tech._prefab%29" class="techoutside" data-pltdoc="x"><span class="techinside">prefab</span></a> structure type, the <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread%29%29" class="RktValLink" data-pltdoc="x">exn:fail:read</a></span> exception is raised.</p><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;parse-hashtable&quot;">1.3.12<tt>&nbsp;</tt><a name="(part._parse-hashtable)"></a>Reading Hash Tables</h5><p>A <a name="(idx._(gentag._68._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#hash</span><span class="hspace"></span></span> starts an immutable <a href="hashtables.html#%28tech._hash._table%29" class="techoutside" data-pltdoc="x"><span class="techinside">hash-table</span></a> constant
with key matching based on <span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._equal~3f%29%29" class="RktValLink" data-pltdoc="x">equal?</a></span>. The characters after
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">hash</span><span class="hspace"></span></span> must parse as a list of pairs (see
<a href="#%28part._parse-pair%29" data-pltdoc="x">Reading Pairs and Lists</a>) with a specific use of delimited <span class="RktInBG"><span class="hspace"></span><span class="RktIn">.</span><span class="hspace"></span></span>:
it must appear between the elements of each pair in the list and
nowhere in the sequence of list elements. The first element of each
pair is used as the key for a table entry, and the second element of
each pair is the associated value.</p><p>A <a name="(idx._(gentag._69._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#hasheq</span><span class="hspace"></span></span> starts a hash table like
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">#hash</span><span class="hspace"></span></span>, except that it constructs a hash table based on
<span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._eq~3f%29%29" class="RktValLink" data-pltdoc="x">eq?</a></span> instead of <span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._equal~3f%29%29" class="RktValLink" data-pltdoc="x">equal?</a></span>.</p><p>A <a name="(idx._(gentag._70._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#hasheqv</span><span class="hspace"></span></span> starts a hash table like
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">#hash</span><span class="hspace"></span></span>, except that it constructs a hash table based on
<span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._eqv~3f%29%29" class="RktValLink" data-pltdoc="x">eqv?</a></span> instead of <span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._equal~3f%29%29" class="RktValLink" data-pltdoc="x">equal?</a></span>.</p><p>In all cases, the table is constructed by adding each mapping to the
 hash table from left to right, so later mappings can hide earlier
 mappings if the keys are equivalent.</p><p><table cellspacing="0" cellpadding="0"><tr><td><p>Examples, where <span class="RktSym">make-...</span> stands for <span class="RktSym"><a href="hashtables.html#%28def._%28%28quote._~23~25kernel%29._make-immutable-hash%29%29" class="RktValLink" data-pltdoc="x">make-immutable-hash</a></span>:</p></td></tr><tr><td><table cellspacing="0" cellpadding="0"><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#hash()</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">make-...</span><span class="stt"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">)</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#hasheq()</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">make-...eq</span><span class="stt"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">)</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#hash(("a" . 5))</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">make-...</span><span class="stt"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">(</span><span class="RktVal">"a"</span><span class="stt"> </span><span class="RktVal">. </span><span class="RktVal">5</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#hasheq((a . 5) (b . 7))</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">make-...eq</span><span class="stt"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">(</span><span class="RktVal">a</span><span class="stt"> </span><span class="RktVal">. </span><span class="RktVal">5</span><span class="RktVal">)</span><span class="stt"> </span><span class="RktVal">(</span><span class="RktVal">b</span><span class="stt"> </span><span class="RktVal">. </span><span class="RktVal">7</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#hasheq((a . 5) (a . 7))</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">make-...eq</span><span class="stt"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">(</span><span class="RktVal">a</span><span class="stt"> </span><span class="RktVal">. </span><span class="RktVal">7</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktPn">)</span></p></td></tr></table></td></tr></table></p><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;parse-box&quot;">1.3.13<tt>&nbsp;</tt><a name="(part._parse-box)"></a>Reading Boxes</h5><p>When the reader encounters a <a name="(idx._(gentag._71._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#&amp;</span><span class="hspace"></span></span>, it starts
parsing a <a href="boxes.html#%28tech._box%29" class="techoutside" data-pltdoc="x"><span class="techinside">box</span></a>; see <a href="boxes.html" data-pltdoc="x">Boxes</a> for information on boxes. The
content of the box is determined by recursively reading the next
datum.</p><p>In <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-syntax%29%29" class="RktValLink" data-pltdoc="x">read-syntax</a></span> mode, the recursive read for the box content
is also in <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-syntax%29%29" class="RktValLink" data-pltdoc="x">read-syntax</a></span> mode, so that the wrapped box&rsquo;s
content is also wrapped as a syntax object, and the box is immutable.</p><p><table cellspacing="0" cellpadding="0"><tr><td><p>Examples:</p></td></tr><tr><td><table cellspacing="0" cellpadding="0"><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#&amp;17</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">box</span><span class="stt"> </span><span class="RktVal">17</span><span class="RktPn">)</span></p></td></tr></table></td></tr></table></p><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;parse-character&quot;">1.3.14<tt>&nbsp;</tt><a name="(part._parse-character)"></a>Reading Characters</h5><blockquote class="refpara"><blockquote class="refcolumn"><blockquote class="refcontent"><p><span class="imageleft"><img src="finger.png" alt="+" width="24" height="24"/></span><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=guide&amp;rel=characters.html&amp;version=6.7" class="Sq" data-pltdoc="x">Characters</a> in <a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=guide&amp;rel=index.html&amp;version=6.7" class="Sq" data-pltdoc="x"><span style="font-weight: bold">The Racket Guide</span></a> introduces the syntax of characters.</p></blockquote></blockquote></blockquote><p>A <a name="(idx._(gentag._72._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#\</span><span class="hspace"></span></span> starts a <a href="characters.html#%28tech._character%29" class="techoutside" data-pltdoc="x"><span class="techinside">character</span></a> constant, which has
one of the following forms:</p><ul><li><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#\nul</span><span class="hspace"></span></span> or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#\null</span><span class="hspace"></span></span>: NUL (ASCII 0); the next character must not be <a href="characters.html#%28def._%28%28quote._~23~25kernel%29._char-alphabetic~3f%29%29" data-pltdoc="x">alphabetic</a>.</p></li><li><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#\backspace</span><span class="hspace"></span></span>: backspace  (ASCII 8); the next character must not be <a href="characters.html#%28def._%28%28quote._~23~25kernel%29._char-alphabetic~3f%29%29" data-pltdoc="x">alphabetic</a>.</p></li><li><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#\tab</span><span class="hspace"></span></span>: tab (ASCII 9); the next character must not be <a href="characters.html#%28def._%28%28quote._~23~25kernel%29._char-alphabetic~3f%29%29" data-pltdoc="x">alphabetic</a>.</p></li><li><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#\newline</span><span class="hspace"></span></span> or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#\linefeed</span><span class="hspace"></span></span>: linefeed (ASCII 10); the next character must not be <a href="characters.html#%28def._%28%28quote._~23~25kernel%29._char-alphabetic~3f%29%29" data-pltdoc="x">alphabetic</a>.</p></li><li><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#\vtab</span><span class="hspace"></span></span>: vertical tab (ASCII 11); the next character must not be <a href="characters.html#%28def._%28%28quote._~23~25kernel%29._char-alphabetic~3f%29%29" data-pltdoc="x">alphabetic</a>.</p></li><li><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#\page</span><span class="hspace"></span></span>: page break (ASCII 12); the next character must not be <a href="characters.html#%28def._%28%28quote._~23~25kernel%29._char-alphabetic~3f%29%29" data-pltdoc="x">alphabetic</a>.</p></li><li><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#\return</span><span class="hspace"></span></span>: carriage return (ASCII 13); the next character must not be <a href="characters.html#%28def._%28%28quote._~23~25kernel%29._char-alphabetic~3f%29%29" data-pltdoc="x">alphabetic</a>.</p></li><li><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#\space</span><span class="hspace"></span></span>: space (ASCII 32); the next character must not be <a href="characters.html#%28def._%28%28quote._~23~25kernel%29._char-alphabetic~3f%29%29" data-pltdoc="x">alphabetic</a>.</p></li><li><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#\rubout</span><span class="hspace"></span></span>: delete (ASCII 127); the next character must not be <a href="characters.html#%28def._%28%28quote._~23~25kernel%29._char-alphabetic~3f%29%29" data-pltdoc="x">alphabetic</a>.</p></li><li><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#\</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">8</span></span>&#8250;</span><span class="sroman"><span style="vertical-align: super; font-size: 80%">{3,3}</span></span>:
Unicode for the octal number specified by three octal digits&#8212;<wbr></wbr>as in string escapes (see
<a href="#%28part._parse-string%29" data-pltdoc="x">Reading Strings</a>), but constrained to exactly three digits.</p></li><li><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#\u</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">16</span></span>&#8250;</span><span class="sroman"><span style="vertical-align: super; font-size: 80%">{1,4}</span></span>:
Unicode for the hexadecimal number specified by <span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">16</span></span>&#8250;</span><span class="sroman"><span style="vertical-align: super; font-size: 80%">{1,4}</span></span>, as in string escapes (see
<a href="#%28part._parse-string%29" data-pltdoc="x">Reading Strings</a>).</p></li><li><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#\U</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">16</span></span>&#8250;</span><span class="sroman"><span style="vertical-align: super; font-size: 80%">{1,6}</span></span>:
like <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#\u</span><span class="hspace"></span></span>, but with up to six hexadecimal digits.</p></li><li><p><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#\</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">c</span>&#8250;</span>: the character <span class="sroman">&#8249;<span style="font-style: italic">c</span>&#8250;</span>, as long
as <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#\</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">c</span>&#8250;</span> and the characters following it
do not match any of the previous cases, and as long as the
character after <span class="sroman">&#8249;<span style="font-style: italic">c</span>&#8250;</span> is not
<a href="characters.html#%28def._%28%28quote._~23~25kernel%29._char-alphabetic~3f%29%29" data-pltdoc="x">alphabetic</a>.</p></li></ul><p><table cellspacing="0" cellpadding="0"><tr><td><p>Examples:</p></td></tr><tr><td><table cellspacing="0" cellpadding="0"><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#\newline</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">integer-&gt;char</span><span class="stt"> </span><span class="RktVal">10</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#\n</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">integer-&gt;char</span><span class="stt"> </span><span class="RktVal">110</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#\u3BB</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">integer-&gt;char</span><span class="stt"> </span><span class="RktVal">955</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#\&#955;</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">integer-&gt;char</span><span class="stt"> </span><span class="RktVal">955</span><span class="RktPn">)</span></p></td></tr></table></td></tr></table></p><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;parse-keyword&quot;">1.3.15<tt>&nbsp;</tt><a name="(part._parse-keyword)"></a>Reading Keywords</h5><p>A <a name="(idx._(gentag._73._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#:</span><span class="hspace"></span></span> starts a <a href="keywords.html#%28tech._keyword%29" class="techoutside" data-pltdoc="x"><span class="techinside">keyword</span></a>. The parsing of a keyword
after the <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#:</span><span class="hspace"></span></span> is the same as for a symbol, including
case-folding in case-insensitive mode, except that the part after
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">#:</span><span class="hspace"></span></span> is never parsed as a number. The resulting keyword is
<a href="#%28tech._interned%29" class="techoutside" data-pltdoc="x"><span class="techinside">interned</span></a>.</p><p><table cellspacing="0" cellpadding="0"><tr><td><p>Examples:</p></td></tr><tr><td><table cellspacing="0" cellpadding="0"><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#:Apple</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">string-&gt;keyword</span><span class="stt"> </span><span class="RktVal">"Apple"</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#:1</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">string-&gt;keyword</span><span class="stt"> </span><span class="RktVal">"1"</span><span class="RktPn">)</span></p></td></tr></table></td></tr></table></p><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;parse-regexp&quot;">1.3.16<tt>&nbsp;</tt><a name="(part._parse-regexp)"></a>Reading Regular Expressions</h5><p>A <a name="(idx._(gentag._74._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#rx</span><span class="hspace"></span></span> or <a name="(idx._(gentag._75._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#px</span><span class="hspace"></span></span> starts a
<a href="regexp.html#%28tech._regular._expression%29" class="techoutside" data-pltdoc="x"><span class="techinside">regular expression</span></a>. The characters immediately after <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#rx</span><span class="hspace"></span></span> or
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">#px</span><span class="hspace"></span></span> must parse as a string or byte string (see
<a href="#%28part._parse-string%29" data-pltdoc="x">Reading Strings</a>). A <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#rx</span><span class="hspace"></span></span> prefix starts a regular
expression as would be constructed by <span class="RktSym"><a href="regexp.html#%28def._%28%28quote._~23~25kernel%29._regexp%29%29" class="RktValLink" data-pltdoc="x">regexp</a></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#px</span><span class="hspace"></span></span>
as constructed by <span class="RktSym"><a href="regexp.html#%28def._%28%28quote._~23~25kernel%29._pregexp%29%29" class="RktValLink" data-pltdoc="x">pregexp</a></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#rx#</span><span class="hspace"></span></span> as constructed by
<span class="RktSym"><a href="regexp.html#%28def._%28%28quote._~23~25kernel%29._byte-regexp%29%29" class="RktValLink" data-pltdoc="x">byte-regexp</a></span>, and <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#px#</span><span class="hspace"></span></span> as constructed by
<span class="RktSym"><a href="regexp.html#%28def._%28%28quote._~23~25kernel%29._byte-pregexp%29%29" class="RktValLink" data-pltdoc="x">byte-pregexp</a></span>. The resulting regular expression is <a href="#%28tech._interned%29" class="techoutside" data-pltdoc="x"><span class="techinside">interned</span></a> in
<span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-syntax%29%29" class="RktValLink" data-pltdoc="x">read-syntax</a></span> mode.</p><p><table cellspacing="0" cellpadding="0"><tr><td><p>Examples:</p></td></tr><tr><td><table cellspacing="0" cellpadding="0"><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#rx".*"</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">regexp</span><span class="stt"> </span><span class="RktVal">".*"</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#px"[\\s]*"</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">pregexp</span><span class="stt"> </span><span class="RktVal">"[\\s]*"</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#rx#".*"</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">byte-regexp</span><span class="stt"> </span><span class="RktVal">#".*"</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#px#"[\\s]*"</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">byte-pregexp</span><span class="stt"> </span><span class="RktVal">#"[\\s]*"</span><span class="RktPn">)</span></p></td></tr></table></td></tr></table></p><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;parse-graph&quot;">1.3.17<tt>&nbsp;</tt><a name="(part._parse-graph)"></a><a name="(idx._(gentag._76._(lib._scribblings/reference/reference..scrbl)))"></a><a name="(idx._(gentag._77._(lib._scribblings/reference/reference..scrbl)))"></a>Reading Graph Structure</h5><p>A <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span><span class="sroman"><span style="vertical-align: super; font-size: 80%">{1,8}</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">=</span><span class="hspace"></span></span> tags the following datum for reference via
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span><span class="sroman"><span style="vertical-align: super; font-size: 80%">{1,8}</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span>, which allows the reader to produce a datum that
has graph structure.</p><p>For a specific <span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span><span class="sroman"><span style="vertical-align: super; font-size: 80%">{1,8}</span></span> in a single read result, each <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span><span class="sroman"><span style="vertical-align: super; font-size: 80%">{1,8}</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span>
reference is replaced by the datum read for the corresponding
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span><span class="sroman"><span style="vertical-align: super; font-size: 80%">{1,8}</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">=</span><span class="hspace"></span></span>; the definition <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span><span class="sroman"><span style="vertical-align: super; font-size: 80%">{1,8}</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">=</span><span class="hspace"></span></span> also produces just the
datum after it. A <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span><span class="sroman"><span style="vertical-align: super; font-size: 80%">{1,8}</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">=</span><span class="hspace"></span></span> definition can appear at most once,
and a <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span><span class="sroman"><span style="vertical-align: super; font-size: 80%">{1,8}</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">=</span><span class="hspace"></span></span> definition must appear before a <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span><span class="sroman"><span style="vertical-align: super; font-size: 80%">{1,8}</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span>
reference appears, otherwise the <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread%29%29" class="RktValLink" data-pltdoc="x">exn:fail:read</a></span> exception is raised. If the
<span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-accept-graph%29%29" class="RktValLink" data-pltdoc="x">read-accept-graph</a></span> parameter is set to <span class="RktVal">#f</span>, then
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span><span class="sroman"><span style="vertical-align: super; font-size: 80%">{1,8}</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">=</span><span class="hspace"></span></span> or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span><span class="sroman"><span style="vertical-align: super; font-size: 80%">{1,8}</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span> triggers a <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread%29%29" class="RktValLink" data-pltdoc="x">exn:fail:read</a></span>
exception.</p><p>Although a comment parsed via <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#;</span><span class="hspace"></span></span> discards the datum
afterward, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">digit<span style="vertical-align: sub; font-size: 80%">10</span></span>&#8250;</span><span class="sroman"><span style="vertical-align: super; font-size: 80%">{1,8}</span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">=</span><span class="hspace"></span></span> definitions in the discarded datum
still can be referenced by other parts of the reader input, as long as
both the comment and the reference are grouped together by some other
form (i.e., some recursive read); a top-level <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#;</span><span class="hspace"></span></span> comment
neither defines nor uses graph tags for other top-level forms.</p><p><table cellspacing="0" cellpadding="0"><tr><td><p>Examples:</p></td></tr><tr><td><table cellspacing="0" cellpadding="0"><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">(#1=100 #1# #1#)</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><p><span class="RktPn">(</span><span class="RktSym">list</span><span class="stt"> </span><span class="RktVal">100</span><span class="stt"> </span><span class="RktVal">100</span><span class="stt"> </span><span class="RktVal">100</span><span class="RktPn">)</span></p></td></tr><tr><td valign="baseline"><p><span class="hspace">&nbsp;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#0=(1 . #0#)</span><span class="hspace"></span></span></p></td><td valign="baseline"><p><span class="hspace">&nbsp;</span>reads equal to<span class="hspace">&nbsp;</span></p></td><td valign="baseline"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="let.html#%28form._%28%28lib._racket%2Fprivate%2Fletstx-scheme..rkt%29._let%2A%29%29" class="RktStxLink" data-pltdoc="x">let*</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktPn">[</span><span class="RktSym">ph</span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="pairs.html#%28def._%28%28quote._~23~25kernel%29._make-placeholder%29%29" class="RktValLink" data-pltdoc="x">make-placeholder</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span><span class="RktPn">]</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">[</span><span class="RktSym">v</span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="pairs.html#%28def._%28%28quote._~23~25kernel%29._cons%29%29" class="RktValLink" data-pltdoc="x">cons</a></span><span class="hspace">&nbsp;</span><span class="RktVal">1</span><span class="hspace">&nbsp;</span><span class="RktSym">ph</span><span class="RktPn">)</span><span class="RktPn">]</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="pairs.html#%28def._%28%28quote._~23~25kernel%29._placeholder-set%21%29%29" class="RktValLink" data-pltdoc="x">placeholder-set!</a></span><span class="hspace">&nbsp;</span><span class="RktSym">ph</span><span class="hspace">&nbsp;</span><span class="RktSym">v</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="pairs.html#%28def._%28%28quote._~23~25kernel%29._make-reader-graph%29%29" class="RktValLink" data-pltdoc="x">make-reader-graph</a></span><span class="hspace">&nbsp;</span><span class="RktSym">v</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr></table></td></tr></table></p><table cellspacing="0" cellpadding="0"><tr><td></td></tr></table><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;parse-reader&quot;">1.3.18<tt>&nbsp;</tt><a name="(part._parse-reader)"></a>Reading via an Extension</h5><blockquote class="refpara"><blockquote class="refcolumn"><blockquote class="refcontent"><p><span class="imageleft"><img src="finger.png" alt="+" width="24" height="24"/></span><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=guide&amp;rel=hash-reader.html&amp;version=6.7" class="Sq" data-pltdoc="x">Reader Extensions</a> in <a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=guide&amp;rel=index.html&amp;version=6.7" class="Sq" data-pltdoc="x"><span style="font-weight: bold">The Racket Guide</span></a> introduces reader extension.</p></blockquote></blockquote></blockquote><p>When the reader encounters <a name="(idx._(gentag._78._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#reader</span><span class="hspace"></span></span>, it loads
an external reader procedure and applies it to the current input
stream.</p><p>The reader recursively reads the next datum after <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#reader</span><span class="hspace"></span></span>,
and passes it to the procedure that is the value of the
<span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._current-reader-guard%29%29" class="RktValLink" data-pltdoc="x">current-reader-guard</a></span> <a href="eval-model.html#%28tech._parameter%29" class="techoutside" data-pltdoc="x"><span class="techinside">parameter</span></a>; the result is used as a
module path. The module path is passed to <span class="RktSym"><a href="Module_Names_and_Loading.html#%28def._%28%28quote._~23~25kernel%29._dynamic-require%29%29" class="RktValLink" data-pltdoc="x">dynamic-require</a></span>
with either <span class="RktVal">'</span><span class="RktVal">read</span> or <span class="RktVal">'</span><span class="RktVal">read-syntax</span> (depending on
whether the reader is in <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read%29%29" class="RktValLink" data-pltdoc="x">read</a></span> or <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-syntax%29%29" class="RktValLink" data-pltdoc="x">read-syntax</a></span>
mode). The module is loaded in a <a href="Namespaces.html#%28tech._root._namespace%29" class="techoutside" data-pltdoc="x"><span class="techinside">root namespace</span></a> of the
<a href="syntax-model.html#%28tech._current._namespace%29" class="techoutside" data-pltdoc="x"><span class="techinside">current namespace</span></a>.</p><p>The arity of the resulting procedure determines whether it accepts
extra source-location information: a <span class="RktSym">read</span> procedure
accepts either one argument (an input port) or five, and a
<span class="RktSym">read-syntax</span> procedure accepts either two arguments (a
name value and an input port) or six. In either case, the four
optional arguments are the reader&rsquo;s module path (as a syntax object in
<span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-syntax%29%29" class="RktValLink" data-pltdoc="x">read-syntax</a></span> mode) followed by the line (positive exact
integer or <span class="RktVal">#f</span>), column (non-negative exact integer or
<span class="RktVal">#f</span>), and position (positive exact integer or <span class="RktVal">#f</span>) of
the start of the <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#reader</span><span class="hspace"></span></span> form. The input port is the one
whose stream contained <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#reader</span><span class="hspace"></span></span>, where the stream position is
immediately after the recursively read module path.</p><p>The procedure should produce a datum result.  If the result is a
syntax object in <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read%29%29" class="RktValLink" data-pltdoc="x">read</a></span> mode, then it is converted to a datum
using <span class="RktSym"><a href="stxops.html#%28def._%28%28quote._~23~25kernel%29._syntax-~3edatum%29%29" class="RktValLink" data-pltdoc="x">syntax-&gt;datum</a></span>; if the result is not a syntax object in
<span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-syntax%29%29" class="RktValLink" data-pltdoc="x">read-syntax</a></span> mode, then it is converted to one using
<span class="RktSym"><a href="stxops.html#%28def._%28%28quote._~23~25kernel%29._datum-~3esyntax%29%29" class="RktValLink" data-pltdoc="x">datum-&gt;syntax</a></span>. See also <a href="reader-procs.html" data-pltdoc="x">Reader-Extension Procedures</a> for
information on the procedure&rsquo;s results.</p><p>If the <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-accept-reader%29%29" class="RktValLink" data-pltdoc="x">read-accept-reader</a></span> <a href="eval-model.html#%28tech._parameter%29" class="techoutside" data-pltdoc="x"><span class="techinside">parameter</span></a> is set to
<span class="RktVal">#f</span>, then if the reader encounters <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#reader</span><span class="hspace"></span></span>, the
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread%29%29" class="RktValLink" data-pltdoc="x">exn:fail:read</a></span> exception is raised.</p><blockquote class="refpara"><blockquote class="refcolumn"><blockquote class="refcontent"><p><span class="imageleft"><img src="finger.png" alt="+" width="24" height="24"/></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="Sq" data-pltdoc="x">The <span class="RktMod">#lang</span> Shorthand</a> in <a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=guide&amp;rel=index.html&amp;version=6.7" class="Sq" data-pltdoc="x"><span style="font-weight: bold">The Racket Guide</span></a> introduces <span class="RktMod">#lang</span>.</p></blockquote></blockquote></blockquote><p>The <a name="(idx._(gentag._79._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#lang</span><span class="hspace"></span></span> reader form is similar to
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">#reader</span><span class="hspace"></span></span>, but more constrained: the <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#lang</span><span class="hspace"></span></span> must be
followed by a single space (ASCII 32), and then a non-empty sequence
of alphanumeric ASCII, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">+</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">-</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">_</span><span class="hspace"></span></span>, and/or
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">/</span><span class="hspace"></span></span> characters terminated by
<a href="characters.html#%28def._%28%28quote._~23~25kernel%29._char-whitespace~3f%29%29" data-pltdoc="x">whitespace</a> or an end-of-file.  The
sequence must not start or end with <span class="RktInBG"><span class="hspace"></span><span class="RktIn">/</span><span class="hspace"></span></span>. A sequence
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">#lang</span><span class="hspace">&nbsp;</span></span><span class="sroman">&#8249;<span style="font-style: italic">name</span>&#8250;</span> is equivalent to either
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">#reader (submod</span><span class="hspace">&nbsp;</span></span><span class="sroman">&#8249;<span style="font-style: italic">name</span>&#8250;</span><span class="RktInBG"><span class="hspace">&nbsp;</span><span class="RktIn">reader)</span><span class="hspace"></span></span> or
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">#reader</span><span class="hspace">&nbsp;</span></span><span class="sroman">&#8249;<span style="font-style: italic">name</span>&#8250;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">/lang/reader</span><span class="hspace"></span></span>, where the
former is tried first guarded by a <span class="RktSym"><a href="Module_Names_and_Loading.html#%28def._%28%28quote._~23~25kernel%29._module-declared~3f%29%29" class="RktValLink" data-pltdoc="x">module-declared?</a></span>
check (but after filtering by
<span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._current-reader-guard%29%29" class="RktValLink" data-pltdoc="x">current-reader-guard</a></span>, so both are passed to the
value of <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._current-reader-guard%29%29" class="RktValLink" data-pltdoc="x">current-reader-guard</a></span> if the latter is used). Note
that the terminating whitespace (if any) is not consumed before the
external reading procedure is called.</p><blockquote class="refpara"><blockquote class="refcolumn"><blockquote class="refcontent"><p><span class="imageleft"><img src="finger.png" alt="+" width="24" height="24"/></span><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=guide&amp;rel=hash-languages.html&amp;version=6.7" class="Sq" data-pltdoc="x">Defining new <span class="RktModLink"><span class="RktMod">#lang</span></span> Languages</a> in <a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=guide&amp;rel=index.html&amp;version=6.7" class="Sq" data-pltdoc="x"><span style="font-weight: bold">The Racket Guide</span></a> introduces the creation languages for <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>.</p></blockquote></blockquote></blockquote><p>Finally, <a name="(idx._(gentag._80._(lib._scribblings/reference/reference..scrbl)))"></a><span class="RktInBG"><span class="hspace"></span><span class="RktIn">#!</span><span class="hspace"></span></span> is an alias for <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#lang</span><span class="hspace"></span></span>
followed by a space when <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#!</span><span class="hspace"></span></span> is followed by alphanumeric
ASCII, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">+</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">-</span><span class="hspace"></span></span>, or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">_</span><span class="hspace"></span></span>. Use of this alias
is discouraged except as needed to construct programs that conform to
certain grammars, such as that of R<span style="vertical-align: super; font-size: 80%">6</span>RS
[<a href="doc-bibliography.html#%28cite._.Sperber07%29" data-pltdoc="x">Sperber07</a>].</p><blockquote class="refpara"><blockquote class="refcolumn"><blockquote class="refcontent"><p>The <a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=syntax&amp;rel=reader-helpers.html%23%2528mod-path._syntax%252Fmodule-reader%2529&amp;version=6.7" class="RktModLink Sq" data-pltdoc="x"><span class="RktSym">syntax/module-reader</span></a> library provides a
domain-specific language for writing language readers.</p></blockquote></blockquote></blockquote><p>By convention, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#lang</span><span class="hspace"></span></span> normally appears at the beginning of a
file, possibly after comment forms, to specify the syntax of a module.</p><p>If the <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-accept-reader%29%29" class="RktValLink" data-pltdoc="x">read-accept-reader</a></span> or <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-accept-lang%29%29" class="RktValLink" data-pltdoc="x">read-accept-lang</a></span>
<a href="eval-model.html#%28tech._parameter%29" class="techoutside" data-pltdoc="x"><span class="techinside">parameter</span></a> is set to <span class="RktVal">#f</span>, then if the reader encounters
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">#lang</span><span class="hspace"></span></span> or equivalent <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#!</span><span class="hspace"></span></span>, the <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread%29%29" class="RktValLink" data-pltdoc="x">exn:fail:read</a></span> exception is raised.</p><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;parse-cdot&quot;">1.3.19<tt>&nbsp;</tt><a name="(part._parse-cdot)"></a>Reading with C-style infix dot notation</h5><p>When the <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-cdot%29%29" class="RktValLink" data-pltdoc="x">read-cdot</a></span> <a href="eval-model.html#%28tech._parameter%29" class="techoutside" data-pltdoc="x"><span class="techinside">parameter</span></a> is set to <span class="RktVal">#t</span>,
then a variety of changes occur in the reader.</p><p>First, symbols can no longer include the character <span class="RktInBG"><span class="hspace"></span><span class="RktIn">.</span><span class="hspace"></span></span>, unless
the entire symbol is quoted with <span class="RktInBG"><span class="hspace"></span><span class="RktIn">|</span><span class="hspace"></span></span>.</p><p>Second, numbers can no longer include the character <span class="RktInBG"><span class="hspace"></span><span class="RktIn">.</span><span class="hspace"></span></span>,
unless the number is prefixed with <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#e</span><span class="hspace"></span></span> or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#i</span><span class="hspace"></span></span>, or an
equivalent prefix as discussed in <a href="#%28part._parse-number%29" data-pltdoc="x">Reading Numbers</a>. If these
numbers are followed by a <span class="RktInBG"><span class="hspace"></span><span class="RktIn">.</span><span class="hspace"></span></span> intended to be read as a C-style
infix dot, then there must be separating whitespace.</p><p>Finally, after reading any datum <span class="RktVar">x</span>, the reader will seek
through whitespace and look for zero or more sequences of a
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">.</span><span class="hspace"></span></span> followed by another datum <span class="RktVar">y</span>. It will then group
<span class="RktVar">x</span> and <span class="RktVar">y</span> together in a <span class="RktSym">#%dot</span> form so that
<span class="RktVar">x.y</span> reads equal to <span class="RktPn">(</span><span class="RktSym">#%dot</span><span class="stt"> </span><span class="RktVar">x</span><span class="stt"> </span><span class="RktVar">y</span><span class="RktPn">)</span>.</p><p>If <span class="RktVar">x.y</span> has another <span class="RktInBG"><span class="hspace"></span><span class="RktIn">.</span><span class="hspace"></span></span> after it, the reader will
accumulate more <span class="RktInBG"><span class="hspace"></span><span class="RktIn">.</span><span class="hspace"></span></span>-separated datums, grouping them from
left-to-right. For example, <span class="RktVar">x.y.z</span> reads equal to
<span class="RktPn">(</span><span class="RktSym">#%dot</span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym">#%dot</span><span class="stt"> </span><span class="RktVar">x</span><span class="stt"> </span><span class="RktVar">y</span><span class="RktPn">)</span><span class="stt"> </span><span class="RktVar">z</span><span class="RktPn">)</span>.</p><p>In <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-syntax%29%29" class="RktValLink" data-pltdoc="x">read-syntax</a></span> mode, the <span class="RktSym">#%dot</span> symbol has the
source location information of the <span class="RktInBG"><span class="hspace"></span><span class="RktIn">.</span><span class="hspace"></span></span> character and the
entire list has the source location information spanning from the
start of <span class="RktVar">x</span> to the end of <span class="RktVar">y</span>.</p><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;S-Expression_Reader_Language&quot;">1.3.19.1<tt>&nbsp;</tt><a name="(part._.S-.Expression_.Reader_.Language)"></a><a name="(mod-path._s-exp)"></a>S-Expression Reader Language</h5><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="#%28mod-path._s-exp%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">s-exp</span></a></td><td align="right"><span class="RpackageSpec"><span class="Smaller">&nbsp;package:</span> <span class="stt">base</span></span></td></tr></table></p><blockquote class="refpara"><blockquote class="refcolumn"><blockquote class="refcontent"><p><span class="imageleft"><img src="finger.png" alt="+" width="24" height="24"/></span><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=guide&amp;rel=module-languages.html%23%2528part._s-exp%2529&amp;version=6.7" class="Sq" data-pltdoc="x">Using <span class="RktModLink"><span class="RktMod">#lang</span></span><span class="stt"> </span><span class="RktModLink"><span class="RktSym">s-exp</span></span></a> in <a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=guide&amp;rel=index.html&amp;version=6.7" class="Sq" data-pltdoc="x"><span style="font-weight: bold">The Racket Guide</span></a> introduces the <a href="#%28mod-path._s-exp%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">s-exp</span></a> meta-language.</p></blockquote></blockquote></blockquote><p>The <span class="RktSym">s-exp</span> &ldquo;language&rdquo; is a kind of meta-language. It
<span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read%29%29" class="RktValLink" data-pltdoc="x">read</a></span>s the S-expression that follows <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#lang s-exp</span><span class="hspace"></span></span> and
uses it as the language of a <span class="RktSym"><a href="module.html#%28form._%28%28quote._~23~25kernel%29._module%29%29" class="RktStxLink" data-pltdoc="x">module</a></span> form. It also reads all
remaining S-expressions until an end-of-file, using them for the body
of the generated <span class="RktSym"><a href="module.html#%28form._%28%28quote._~23~25kernel%29._module%29%29" class="RktStxLink" data-pltdoc="x">module</a></span>.</p><p>That is,</p><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><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="#%28mod-path._s-exp%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">s-exp</span></a><span class="hspace">&nbsp;</span><span class="RktVar">module-path</span></td></tr><tr><td><span class="RktVar">form</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="stx-patterns.html#%28form._%28%28lib._racket%2Fprivate%2Fstxcase-scheme..rkt%29._......%29%29" class="RktStxLink" data-pltdoc="x">...</a></span></td></tr></table></blockquote><p>is equivalent to</p><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="module.html#%28form._%28%28quote._~23~25kernel%29._module%29%29" class="RktStxLink" data-pltdoc="x">module</a></span><span class="hspace">&nbsp;</span><span class="RktVar">name-id</span><span class="hspace">&nbsp;</span><span class="RktVar">module-path</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">form</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="stx-patterns.html#%28form._%28%28lib._racket%2Fprivate%2Fstxcase-scheme..rkt%29._......%29%29" class="RktStxLink" data-pltdoc="x">...</a></span><span class="RktPn">)</span></td></tr></table></blockquote><p>where <span class="RktVar">name-id</span> is derived from the source input port&rsquo;s name:
if the port name is a filename path, the filename without its
directory path and extension is used for <span class="RktVar">name-id</span>, otherwise
<span class="RktVar">name-id</span> is <span class="RktSym">anonymous-module</span>.</p><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;Chaining_Reader_Language&quot;">1.3.19.2<tt>&nbsp;</tt><a name="(part._.Chaining_.Reader_.Language)"></a><a name="(mod-path._reader)"></a>Chaining Reader Language</h5><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="#%28mod-path._reader%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">reader</span></a></td><td align="right"><span class="RpackageSpec"><span class="Smaller">&nbsp;package:</span> <span class="stt">base</span></span></td></tr></table></p><blockquote class="refpara"><blockquote class="refcolumn"><blockquote class="refcontent"><p><span class="imageleft"><img src="finger.png" alt="+" width="24" height="24"/></span><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=guide&amp;rel=hash-lang_reader.html&amp;version=6.7" class="Sq" data-pltdoc="x">Using <span class="RktModLink"><span class="RktMod">#lang</span></span><span class="stt"> </span><span class="RktModLink"><span class="RktSym">reader</span></span></a> in <a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=guide&amp;rel=index.html&amp;version=6.7" class="Sq" data-pltdoc="x"><span style="font-weight: bold">The Racket Guide</span></a> introduces the <a href="#%28mod-path._reader%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">reader</span></a> meta-language.</p></blockquote></blockquote></blockquote><p>The <span class="RktSym">reader</span> &ldquo;language&rdquo; is a kind of meta-language. It
<span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read%29%29" class="RktValLink" data-pltdoc="x">read</a></span>s the S-expression that follows <span class="RktInBG"><span class="hspace"></span><span class="RktIn">#lang reader</span><span class="hspace"></span></span>
and uses it as a module path (relative to the module being read) that
effectively takes the place of <a href="#%28mod-path._reader%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">reader</span></a>. In other words,
the <a href="#%28mod-path._reader%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">reader</span></a> meta-language generalizes the syntax of the
module specified after <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> to be a module path, and without
the implicit addition of <span class="RktInBG"><span class="hspace"></span><span class="RktIn">/lang/reader</span><span class="hspace"></span></span> to the path.</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="syntax-model.html" title="backward to &quot;1.2 Syntax Model&quot;" data-pltdoc="x">&larr; prev</a>&nbsp;&nbsp;<a href="model.html" title="up to &quot;1 Language Model&quot;" data-pltdoc="x">up</a>&nbsp;&nbsp;<a href="printing.html" title="forward to &quot;1.4 The Printer&quot;" data-pltdoc="x">next &rarr;</a></span>&nbsp;</div></div></div><div id="contextindicator">&nbsp;</div></body></html>