Subject: Re: bug#73853: 31.0.50; and-let* is useless

From: Stefan Monnier <[email-masked]>
Date: Fri, 17 Jan 2025 10:39:45 -0500

> remains quite philosophical.  And replacing calls of `and-let*' with
> equivalent calls of `when-let*' doesn't make code easier to read, IMO.

Of course it can make it easier to read since the reader doesn't need to
know yet another construct and the subtle difference with its
almost twin.

> Right.  The Lisp convention of using `when' for pure control flow and
> `and' for returning values is a good aid to readability.

AFAIK this convention is followed only by some coders, so it doesn't
help readability because you can't rely on it.

> If we don't have and-let*, then we can't use this convention in the case
> that we also want to bind variables.

Then again, we don't have such a "value returning vs not" duplication
and associated convention for `let`, `progn`, `lambda`,
`unwind-protect`, `catch`, `condition-case, ...

The fact we have all three of if/when/and is not a good justification
for `and-let*`.

        Stefan