A number of different special forms are indicated by an
initial hash (number) symbols (#
).
Here is a table summarizing them.
Case is ignored for the character followed the #
.
Thus #x
and #X
are the same.
#:
keyword
Guile-style keyword syntax.
#\
#!
#‘
datum
Equivalent to (quasisyntax
.
Convenience syntax for syntax-case macros.
datum
)
#’
datum
Equivalent to (syntax
.
Convenience syntax for syntax-case macros.
datum
)
#,
datum
Equivalent to (unsyntax
.
Currently only recognized when inside a datum
)#`
form.
Convenience syntax for syntax-case macros.
template
#,(
name
datum
...)
Special named constructors.
This syntax is deprecated, because it conflicts with unsyntax
.
It is only recognized when not in a #`
form.
template
#,@
datum
Equivalent to (unsyntax-splicing
.
datum
)
#(
A vector.
#|
Start of nested-comment.
#/
regex
/
See Regular expressions.
#<
See XML literals.
#;
datum
A datum comment - the datum
is ignored.
(An interlexeme-space
may appear before the datum
.)
#
number
=
datum
A reference definition, allowing cyclic and shared structure.
Equivalent to the datum
, but also defines an association between
the integer number
and that datum
, which can be
used by a subsequent #
form.
number
#
#
number
#
A back-reference, allowing cyclic and shared structure.
#
R
a
datum
An array literal,
for a multi-dimensional array of rank R
.
#b
A binary (base-2) number.
#d
A decimal (base-10) number.
#e
A prefix to treat the following number as exact.
#f
#false
The standard boolean false object.
#f
n
(
number
...)
A uniform vector of floating-point numbers.
The parameter n
is a precision, which can be 32 or 64.
See Uniform vectors.
#i
A prefix to treat the following number as inexact.
#o
An octal (base-8) number.
#
base
r
A number in the specified base
(radix).
#s
n
(
number
...)
A uniform vector of signed integers.
The parameter n
is a precision, which can be 8, 16, 32, or 64.
See Uniform vectors.
#t
#true
The standard boolean true object.
#u
n
(
number
...)
A uniform vector of unsigned integers.
The parameter n
is a precision, which can be 8, 16, 32, or 64.
See Uniform vectors.
#x
A hexadecimal (base-16) number.
The follow named constructor forms are supported:
#,(path
path
)
#,(filepath
path
)
#,(URI
path
)
#,(symbol
local-name
[uri
[prefix
]])
#,(symbol
local-name
namespace
)
#,(namespace
uri
[prefix
])
#,(duration
duration
)