ToC | DocOverview | CGDoc | RelNotes | Index | PermutedIndex
| Allegro CL

| ANSI Common Lisp 2 Syntax 2.4 Standard Macro Characters ### 2.4.8 Sharpsign Sharpsign is a non-terminating dispatching macro character. It reads an optional sequence of digits and then one more character, and uses that character to select a function to run as a reader macro function. The standard syntax includes constructs introduced by the `#` character. The syntax of these constructs is as follows: a character that identifies the type of construct is followed by arguments in some form. If the character is a letter, its case is not important; `#O` and `#o` are considered to be equivalent, for example. Certain `#` constructs allow an unsigned decimal number to appear between the `#` and the character. The reader macros associated with the dispatching macro character `#` are described later in this section and summarized in the next figure.
Standard # Dispatching Macro Character Syntax
dispatch char | purpose | dispatch char | purpose
--- | --- | --- | ---
Backspace | signals error | `{` | undefined*
Tab | signals error | `}` | undefined*
Newline | signals error | + | read-time conditional
Linefeed | signals error | - | read-time conditional
Page | signals error | . | read-time evaluation
Return | signals error | / | undefined
Space | signals error | A, a | array
! | undefined* | B, b | binary rational
`"` | undefined | C, c | complex number
# | reference to = label | D, d | undefined
$ | undefined | E, e | undefined
% | undefined | F, f | undefined
& | undefined | G, g | undefined
' | function abbreviation | H, h | undefined
( | simple vector | I, i | undefined
) | signals error | J, j | undefined
`*` | bit vector | K, k | undefined
, | undefined | L, l | undefined
: | uninterned symbol | M, m | undefined
; | undefined | N, n | undefined
`<` | signals error | O, o | octal rational
`=` | labels following object | P, p | pathname
`>` | undefined | Q, q | undefined
? | undefined* | R, r | radix-n rational
@ | undefined | S, s | structure
[ | undefined* | T, t | undefined
`\` | character object | U, u | undefined
] | undefined* | V, v | undefined
^ | undefined | W, w | undefined
`_` | undefined | X, x | hexadecimal rational
` | undefined | Y, y | undefined
`|` | balanced comment | Z, z | undefined
`~` | undefined | Rubout | undefined
The combinations marked by an asterisk (*) are explicitly reserved to the user. No conforming implementation defines them. Note also that digits do not appear in the preceding table. This is because the notations `#0`, `#1`, ..., `#9` are reserved for another purpose which occupies the same syntactic space. When a digit follows a sharpsign, it is not treated as a dispatch character. Instead, an unsigned integer argument is accumulated and passed as an argument to the reader macro for the character that follows the digits. For example, `#2A((1 2) (3 4))` is a use of `#A` with an argument of `2`. 2.4.8.1 Sharpsign Backslash 2.4.8.2 Sharpsign Single-Quote 2.4.8.3 Sharpsign Left-Parenthesis 2.4.8.4 Sharpsign Asterisk 2.4.8.5 Sharpsign Colon 2.4.8.6 Sharpsign Dot 2.4.8.7 Sharpsign B 2.4.8.8 Sharpsign O 2.4.8.9 Sharpsign X 2.4.8.10 Sharpsign R 2.4.8.11 Sharpsign C 2.4.8.12 Sharpsign A 2.4.8.13 Sharpsign S 2.4.8.14 Sharpsign P 2.4.8.15 Sharpsign Equal-Sign 2.4.8.16 Sharpsign Sharpsign 2.4.8.17 Sharpsign Plus 2.4.8.18 Sharpsign Minus 2.4.8.19 Sharpsign Vertical-Bar 2.4.8.20 Sharpsign Less-Than-Sign 2.4.8.21 Sharpsign Whitespace 2.4.8.22 Sharpsign Right-Parenthesis

© Franz Inc. All Rights Reserved - File last updated 2022-07-25