Hmm this was wrong, I mean

For conditional variables we have a default begin. So then why on earth do
you not have an implicit let?, Just laziness?
There should  be a good reason or? this is a pretty fundamental change that
I support but then we should not be lazy not trying to understand the
design choices of the old beards.

On Sat, Feb 5, 2022 at 11:55 AM Maxime Devos <maximede...@telenet.be> wrote:

> Hi,
>
> > > (define foo 'bar) ;; <--- ^^^
> > > (define-syntax foobar
> > >   (syntax-rules (foo)
> > >     ((_ foo)
> > >      (begin (pk "it's a foo!") foo))
> > >     ((_ goo)
> > >      (begin (pk "it's not a foo ...") goo))))
> > >
> > > (define (zebra stripes)
> > >   (if stripes
> > >       (define foo 'quux)) ;;  <--- ###
> > >   (foobar foo)) ;; <--- ***
>
> Stefan Israelsson Tampe schreef op za 05-02-2022 om 02:14 [+0100]:
> > For conditional variables you gave a default value.
>
> I don't understand the question, I didn't give a default value?
>
> The variable 'foo' (^^^) is a different variable from 'foo' (###)
> since 'foo' (^^^) is a module variable, and 'foo' (###) is a local
> variable in 'zebra'.  Merely having the same name does not imply
> being the same variable, c.f. shadowing, so '^^^' does _not_ give
> a default value to the 'foo' in '###'.
>
> (If '###' was 'set!' instead of 'define', then the two variables would
> have been the same.)
>
> > So then why on earth do you not have an implicit let ?
> > There must be a good reason.
>
> I don't understand the question, there's an implicit 'let' here:
> the definition of 'zebra'.  Also, I don't see what the question ‘why do
> you not have an implicit let?’ has to do with ‘For conditional
> variables you gave a default value.’.
>
> Also, AFAICT these questions don't seem to have anything to do
> with the macro system problems I noted?
>
> Greetings,
> Maxime.
>

Reply via email to