[R6RS] new syntax srfi draft, reference implementation

Michael Sperber sperber at informatik.uni-tuebingen.de
Thu May 18 13:09:58 EDT 2006

dyb at cs.indiana.edu writes:

> Are you thinking that invoking a transformer results in a complete
> recursive expansion of the form down to core forms?  


> That's not the case. A transformer performs its transformation, then
> returns without recursively expanding the result.

Right.  But the sentence I quoted had the word "recursively":

>> The expander invokes the associated transformer to expand the
>> syntactic abstraction, then recursively performs whichever of these
>> actions are appropriate for the resulting form.

Now, maybe I'm just not understanding what "whichever of these actions
are appropriate" means.

> At some level, a check should be made, but I think I prefer to allow an
> implementation to write let as follows
>   (define-syntax let
>     (syntax-rules ()
>       [(_ ((x e) ...) b1 b2 ...)
>        ((lambda (x ...) b1 b2 ...) e ...)]
>       [(_ f ((x e) ...) b1 b2 ...)
>        ((letrec ([f (lambda (x ...) b1 b2 ...)]) f) e ...)]))
> and have lambda report any non-identifier or duplicate-identifier errors. 
> This seems like a quality-of-implementation issue and not something we
> have to dictate.

Fine with me.

Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla

More information about the R6RS mailing list