[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Internal defines



   How is the specification for transformation of internal DEFINEs
   changed if a DEFINE-SYNTAX is done (before any DEFINEs are done)?

   The *specification* is unchanged.

OK.  So this means that

(define-syntax define ...)
(let () (define a 4) a)

will return 4.

Now what about the interaction of BEGIN and DEFINE?

(define-syntax define ...)
(define-syntax begin ...)
(let () (begin (define a 4) (define b 5)) (+ a b))

The transformation of BEGIN here cannot accomplished by a macro
definition of BEGIN because it affects surrounding clauses.  Must BEGIN
be a keyword of any syntax definition with a body?