ToC DocOverview CGDoc RelNotes Index PermutedIndex
Allegro CL
Home Previous Up Next Table of Contents Index
  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


Home Previous Up Next Table of Contents Index
© Franz Inc. 1998-2019 - File last updated 02-07-2019