bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#70597: Problem in pcase-let?


From: Marco Antoniotti
Subject: bug#70597: Problem in pcase-let?
Date: Sun, 28 Apr 2024 20:22:27 +0200

Hi

oooops sorry.  Somehow I was missing cl-destructuring-bind; my bad.

In any case, at a minimum the warning should be issued.  I did refrain from using pcase-let after all, although it "seemed right" for my use case.  Having said that, I would advocate changing the semantics.

Your call anyway.

All the best

On Sun, Apr 28, 2024 at 7:05 PM Stefan Monnier <monnier@iro.umontreal.ca> wrote:
> Let me just answer the destructuring-bind comment by Stefan (I am answering
> to his last email).  The previous ones are somewhat answered here as well.
>
> In some sense, yes.  I kind of want destructuring-bind.  It is, IMHO,
> unfortunate that ELisp does not have it and that we don't have
> cl-destructuring-bind either; lower level beast than matching, but useful.

I don't understand what you mean: `pcase-let` *is* a destructring bind,
and we also do have `cl-destructuring-bind`.

> As per the pcase-let, I still think that the name and/or its behavior
> are confusing because of expectations about how a pattern matcher
> usually works.

Yes, clearly there is a problem of users being surprised.

But AFAICT, changing the semantics is not the right answer, because the
current behavior matches(!) what is usually needed and because the other
behaviors are already well-served by `pcase` and `pcase-exhaustive`.

Maybe a better answer is to try and detect ill-conceived patterns like in:

    (pcase-let (`(foo bar ,x) (SOMETHING)) (ANYTHING))

and emit a warning suggesting to rewrite it to

    (pcase-let (`(,_ ,_ ,x) (SOMETHING)) (ANYTHING))


- Stefan



--
Marco Antoniotti
Somewhere over the Rainbow

reply via email to

[Prev in Thread] Current Thread [Next in Thread]