On 11-Apr-06, at 3:32 PM, Taylor R. Campbell wrote:
> Are these symbols? Keywords? A wholly new, disjoint type of data? I
> can't find this in the specification; there's only a brief remark
> about it in the section on implementation, but this is very important
> since these are otherwise ill-defined data in S-expressions.
Good point.
The only requirement is that #!optional, #!key and #!rest be distinct
objects (i.e. not eqv? to anything else). The #!foo syntax adopted
by DSSSL is probably inspired from the R2RS which had the #!true, #!
false, and #!null syntax for true, false and the empty list. Some
Scheme systems still use the #!foo syntax for some objects (Gambit
and Chez Scheme use #!eof to denote the end-of-file object).
Marc