Re: maybe-let* Marc Nieper-Wißkirchen 03 Jul 2020 17:38 UTC

Am Fr., 3. Juli 2020 um 19:19 Uhr schrieb Wolfgang Corcoran-Mathe
<xxxxxx@sigwinch.xyz>:
>
> I'd prefer to avoid adding let-values syntax to the basic
> maybe/either-let* forms.  (Anecdotally, some Schemers dislike
> let-values and let*-values merely because of the extra parens, and,
> while procedures can always return multiple values, it's the rare
> Scheme programmer who uses the multiple-value-aware forms everywhere.)
> I'd also prefer to avoid mixing single- and multiple-value syntax
> (à la SRFI 71, for example).
>
> My suggestion to John was to add maybe/either-let*-values forms,
> which handle (<formals> <container-expression>) claws in a way
> analogous to let-values, but with the unwrapping of the value of
> <container-expression>.  (The (id) and ((expr)) claws have exactly
> the same semantics that they do in the -let* forms.)  They're simple
> variations on maybe/either-let* and easy to add; programmers who
> only intend to use single-valued containers can pretend they don't
> exist.

If XXX-let*-values is provided, it makes perfect sense to restrict
XXX-let* to single-valued XXXs much like let* is a restricted version
of let*-values. So I think this is a very good idea!

However, XXX-let*-values is still missing in the current draft. I hope
it was an oversight.

PS The SRFI uses the language "an error is signaled" in conjunction
with the new syntax again. That's an error, which I am herewith
signaling again. Unfortunately, the signaled error hasn't been caught
by the SRFI's author yet. :)

(The impossibility to write a robust test for this requirement proves
one shortcoming.)