[R6RS] my notes on today's conference call (22 March 2006)

dyb at cs.indiana.edu dyb at cs.indiana.edu
Wed Mar 22 14:36:43 EST 2006


Thanks for posting your notes.

>         Chez Scheme has meta-syntax, meta-define-syntax, but
>             it doesn't mean what you think it means (?!)

To clarify, Chez Scheme has:

  (meta . <definition>)

to abuse the "." notation slightly, which makes each variable defininitions
resulting from <definition> meta variable definition, i.e., creates the
binding at expansion time so that references to it can be evaluated at
expansion time on the rhs's of other meta variable definitions and in
transformer expressions.  For example,

  (meta define foo ---)

makes foo available at the meta level,

  (meta begin (define foo ---) (define bar ---))

makes both foo and bar available at the meta level, and

  (meta define-record ---)

makes all of the define-record products available at the meta level.
On the other hand,

  (meta define-syntax ---)

doesn't produce any variable definitions, so it is equivalent to

  (define-syntax ---)

Kent



More information about the R6RS mailing list