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 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. >