[R6RS] issues in document/lex.tex

William D Clinger will at ccs.neu.edu
Mon Aug 28 20:24:35 EDT 2006

I just finished some minor revisions to struct.tex,
but I didn't know what to do about the section entitled
"S-expressions and datums".  Here is a summary of the

The first sentence of that section says that datums
are Scheme values.

The third sentence says that S-expressions are what
the R5RS calls external representations.

The fourth sentence says that "each datum can be
trivially translated to a literal expression in a
program by prepending" a quote mark.  Since literal
expressions are textual in Scheme (outside of eval
and procedural macros), that sentence suggests that
a datum is an external representation, not a value,
contrary to the first sentence.  This suggestion is
all the stronger because "prepend" suggests a textual
operation, not two cons operations.

The sixth, seventh, eighth, and ninth sentences
reemphasize that S-expressions are external
representations, not values.

The tenth sentence says "datums can be used to
represent Scheme programs as data objects."  That
is true, of course, but it is misleading because
that representation is used only for eval and for
procedural macros.  Someone who skims over the last
three words of that sentence is likely to get the
impression that datums [sic] are external

The chapter entitled "Lexical syntax and read syntax"
tries to emphasize that S-expressions are external
representations and datums [sic] are values (objects),
but the wording is often ambiguous and confusing, e.g.
"Note that an object that corresponds to an S-expression
(a so-called datum) may also correspond to other

One reason this is confusing is that "datum" meant an
external representation in previous reports on Scheme,
and there is no explicit warning that "datum" now means
almost the opposite of what it has meant historically.
Another reason this is confusing is that, in some other
dialects of Lisp, S-expressions are values, not external

Finally, the plural of datum is data, not "datums".

I did not try to fix any of this, because this is a
major issue whose repair will require systematic changes
throughout the entire document.


More information about the R6RS mailing list