[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?
No.
> 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