Re: Are the splicing versions a drop-in replacement for the non-splicing ones?
Marc Nieper-WiÃkirchen 26 May 2020 13:45 UTC
Am Di., 26. Mai 2020 um 15:44 Uhr schrieb Lassi Kortela <xxxxxx@lassi.io>:
>
> > (let ()
> > (define foo 1)
> > (define bar foo)
> > (let-syntax ()
> > (define foo bar)
> > foo))
> >
> > evaluates to 1, but would be an error if let-syntax is replaced by its
> > splicing version.
>
> Is that because `foo` would then be defined twice in the same scope, and
> would that be undefined behavior according to R7RS?
>
> Whereas R7RS `let-syntax` establishes a new scope where the inner `foo`
> is defined so there is never a conflict with the outer `foo`?
Exactly.