5.3  Non standard read syntax

[read syntax] #| ...|#
A multiline ``block'' comment. May be nested. Implements SRFI-30 4)

[read syntax] #;EXPRESSION
Treats EXPRESSION as a comment.

[read syntax] #,(CONSTRUCTORNAME DATUM ...)
Allows user-defined extension of external representations. (For more information see the documentation for SRFI-105)

[read syntax] #'EXPRESSION
An abbreviation for (syntax EXPRESSION).

[read syntax] #:SYMBOL
Syntax for keywords. Keywords are symbols that evaluate to themselves, and as such don't have to be quoted.

[read syntax] #<<TAG
Specifies a multiline string constant. Anything up to a line equal to TAG will be returned as a single string:

(define msg \#<<END
"Hello, world!", she said.
END
)

is equivalent to

(define msg "\"Hello, world!\", she said.")

[read syntax] #<#TAG
Similar to #<<, but allows substitution of embedded Scheme expressions prefixed with # and optionally enclosed in { ... }. Two consecutive #s are translated to a single #:

(define three 3)
(display #<#EOF
This is a simple string with an embedded `##' character
and substituted expressions: (+ three 99) ==> #(+ three 99)
(three is "#{three}")
EOF
)

prints

This is a simple string with an embedded `#' character
and substituted expressions: (+ three 99) ==> 102
(three is "3")

[read syntax] #> ... <#
Abbreviation for (declare (foreign-declare " ... ")).

[read syntax] #>? ... <#
Abbreviation for (declare (foreign-parse " ... ")).

[read syntax] #>! ... <#
Abbreviation for

(declare
  (foreign-declare " ... ")
  (foreign-parse " ... ") )


4 http://srfi.schemers.org/srfi-30/srfi-30.html

5 http://srfi.schemers.org/srfi-10/srfi-10.html