From: Arthur Miller <arthur.miller@live.com>
To: Philip Kaludercic <philipk@posteo.net>
Cc: "Alfred M. Szmidt" <ams@gnu.org>, emacs-devel@gnu.org
Subject: Re: cond* vs pcase
Date: Tue, 06 Feb 2024 13:30:17 +0100 [thread overview]
Message-ID: <DU2PR02MB10109003216896631024545A796462@DU2PR02MB10109.eurprd02.prod.outlook.com> (raw)
In-Reply-To: <87il32iwmm.fsf@posteo.net> (Philip Kaludercic's message of "Mon, 05 Feb 2024 18:39:13 +0000")
Philip Kaludercic <philipk@posteo.net> writes:
> "Alfred M. Szmidt" <ams@gnu.org> writes:
>
>> I use pcase often; but I use it just as a better cond. For example I find this
>> handy:
>>
>> (defvar foo nil) <-- foo is some symbol
>>
>> (pcase foo
>> ('bar (do-some-bar-stuff))
>> ('baz (do-some-baz-fluff)))
>>
>> cl-case seems more appropriate here (wish cl-case was just case ...)
>
> Why more appropriate? I always think of pcase as Elisp's case. In
> addition, pcase avoids the danger of naively writing
>
> (cl-case foo
> ('bar (do-some-bar-stuff))
> ('baz (do-some-baz-fluff)))
>
> and then getting surprised when foo evaluates to `quote'.
>
>> or this:
>>
>> (setq foo "some-string")
>>
>> (pcase foo
>> ("foo" (do-foo-case))
>> ("bar" (do-bar-case)))
>>
>> Same here, with (intern foo) ...
>
> Being able to do equal instead of eql is also something that speaks in
> favour of pcase...
Thanks Philip; that was an useful detail you pointed out. And thanks Alfred for
the suggestion too. I actually wanted to ask the same question as Philip, but I
didn't had time last night.
But what I am most thinking of, is this kind of quesionts and detail for people
to learn, and now we can add yet another case-like construct and perhaps slightly
different behaviour in similar cases, and there will be even more mine fields
for people to watch out and debug.
next prev parent reply other threads:[~2024-02-06 12:30 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-05 14:30 cond* vs pcase Arthur Miller
2024-02-05 15:13 ` Eli Zaretskii
2024-02-05 16:06 ` Alfred M. Szmidt
2024-02-05 18:39 ` Philip Kaludercic
2024-02-06 12:30 ` Arthur Miller [this message]
2024-02-06 16:17 ` Alfred M. Szmidt
2024-02-06 16:35 ` [External] : " Drew Adams
2024-02-06 16:50 ` Philip Kaludercic
2024-02-06 17:27 ` Alfred M. Szmidt
2024-02-06 18:57 ` Philip Kaludercic
2024-02-06 19:04 ` Alfred M. Szmidt
2024-02-06 19:39 ` Philip Kaludercic
2024-02-06 23:17 ` [External] : " Drew Adams
2024-02-06 19:12 ` Drew Adams
2024-02-06 20:08 ` Adam Porter
2024-02-06 23:32 ` Drew Adams
2024-02-07 13:14 ` Arthur Miller
2024-02-07 13:43 ` Po Lu
2024-02-07 17:09 ` Drew Adams
2024-02-07 17:44 ` Tomas Hlavaty
2024-02-09 3:52 ` Richard Stallman
2024-02-07 18:00 ` Arthur Miller
2024-02-07 18:22 ` Alfred M. Szmidt
2024-02-08 1:55 ` Po Lu
2024-02-08 2:49 ` Philip Kaludercic
2024-02-08 3:36 ` Po Lu
2024-02-08 7:04 ` Eli Zaretskii
2024-02-08 17:01 ` Alfred M. Szmidt
2024-02-08 17:01 ` Alfred M. Szmidt
2024-02-09 1:30 ` Po Lu
2024-02-08 5:01 ` Po Lu
[not found] ` <DU2PR02MB10109B7AC39F995BFE266EF5396442@DU2PR02MB10109.eurprd02.prod.outlook.com>
2024-02-08 7:36 ` Sv: " Arthur Miller
2024-02-12 21:39 ` Stefan Monnier via Emacs development discussions.
2024-02-07 17:14 ` Drew Adams
2024-02-07 5:32 ` Yuri Khan
2024-02-07 12:43 ` Arthur Miller
2024-02-07 17:41 ` Alfred M. Szmidt
2024-02-07 18:36 ` Arthur Miller
2024-02-07 19:12 ` Alfred M. Szmidt
2024-02-07 21:20 ` Arthur Miller
2024-02-06 17:29 ` [External] : " Drew Adams
2024-02-06 17:41 ` Alfred M. Szmidt
2024-02-06 17:50 ` Thierry Volpiatto
2024-02-06 19:04 ` Alfred M. Szmidt
2024-02-07 15:03 ` Barry Fishman
2024-02-07 17:22 ` [External] : " Drew Adams
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=DU2PR02MB10109003216896631024545A796462@DU2PR02MB10109.eurprd02.prod.outlook.com \
--to=arthur.miller@live.com \
--cc=ams@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=philipk@posteo.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.