Re: Are the splicing versions a drop-in replacement for the non-splicing ones?
Lassi Kortela 26 May 2020 13:43 UTC
> (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`?