Hash-prefixed forms

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.

#\

Character literals.

#!

See Special named constants.

#‘datum

Equivalent to (quasisyntax datum). Convenience syntax for syntax-case macros.

#’datum

Equivalent to (syntax datum). Convenience syntax for syntax-case macros.

#,datum

Equivalent to (unsyntax datum). Currently only recognized when inside a #`template form. Convenience syntax for syntax-case macros.

#,(name datum ...)

Special named constructors. This syntax is deprecated, because it conflicts with unsyntax. It is only recognized when not in a #`template form.

#,@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 #number# form.

#number#

A back-reference, allowing cyclic and shared structure.

#Radatum

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.

#fn(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.

#baser

A number in the specified base (radix).

#sn(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.

#un(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)