Merging with let*-values? Marc Nieper-Wißkirchen (24 Aug 2020 15:10 UTC)
Re: Merging with let*-values? Adam Nelson (31 Aug 2020 17:12 UTC)
Re: Merging with let*-values? Marc Nieper-Wißkirchen (31 Aug 2020 17:29 UTC)
Fwd: Merging with let*-values? Marc Nieper-Wißkirchen (31 Aug 2020 17:29 UTC)

Fwd: Merging with let*-values? Marc Nieper-Wißkirchen 31 Aug 2020 17:28 UTC

---------- Forwarded message ---------
Von: Marc Nieper-Wißkirchen <xxxxxx@gmail.com>
Date: Mo., 31. Aug. 2020 um 19:22 Uhr
Subject: Re: Merging with let*-values?
To: Adam Nelson <xxxxxx@nels.onl>
Cc: <xxxxxx@srfi.schemers.org>

Am Mo., 31. Aug. 2020 um 19:12 Uhr schrieb Adam Nelson <xxxxxx@nels.onl>:

> This is sufficiently different that it should be its own SRFI; feel free
> to write that SRFI if you want to. My opinion is that merging `chain`
> and any form of `let*` is unclear. It's somewhat obvious what a macro
> called `chain` does. But it's completely non-obvious that Scheme's
> `let*` assigns special meaning to _ when no other Lisp's `let*` does
> that, and even less obvious that this is a feature that only certain
> Schemes support (it can't be added without language-level support, since
> some Schemes don't allow shadowing of core special forms). Core special
> forms shared with other Lisps shouldn't do unpredictable magic things.

I agree with you that it is an idea for the future, and so it was meant.

I disagree though with what you call obvious. The semantics of chain
are exactly the let*-values semantics (apart from implicit vs explicit
binding), so "let*-values" is more obvious than "chain" (unless you
already know SRFI 197).

That said, extending a core fore is usually not a good idea unless the
extension is really well thought of and equally important, so there
are good reasons to call my extended let*-values proposal slightly
different. (It will have to be an unhygienic macro because "_" has to
be bound implicitly in the init expressions.)

Marc