13.7 Reader Extension

► |  | The Racket Reference

1 | Language Model
2 | Notation for Documentation
3 | Syntactic Forms
4 | Datatypes
5 | Structures
6 | Classes and Objects
7 | Units
8 | Contracts
9 | Pattern Matching
10 | Control Flow
11 | Concurrency and Parallelism
12 | Macros
13 | Input and Output
14 | Reflection and Security
15 | Operating System
16 | Memory Management
17 | Unsafe Operations
18 | Running Racket
| Bibliography
| Index

► | 13 | Input and Output

13.1 | Ports
13.2 | Byte and String Input
13.3 | Byte and String Output
13.4 | Reading
13.5 | Writing
13.6 | Pretty Printing
13.7 | Reader Extension
13.8 | Printer Extension
13.9 | Serialization
13.10 | Fast-Load Serialization
13.11 | Cryptographic Hashing

▼ | 13.7 | Reader Extension

13.7.1 | Readtables
13.7.2 | Reader-Extension Procedures
13.7.3 | Special Comments

top contents ← prev up next →

### 13.7 Reader Extension🔗ℹ

Racket’s reader can be extended in three ways: through a reader-macro procedure in a readtable (see Readtables), through a #reader form (see Reading via an Extension), or through a custom-port byte reader that returns a “special” result procedure (see Custom Ports). All three kinds of reader extension procedures accept similar arguments, and their results are treated in the same way by read and read-syntax (or, more precisely, by the default read handler; see port-read-handler).

13.7.1 Readtables
13.7.2 Reader-Extension Procedures
13.7.3 Special Comments

top contents ← prev up next →