Re: Are the splicing versions a drop-in replacement for the non-splicing ones? Marc Nieper-Wißkirchen (26 May 2020 13:45 UTC)

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.