From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Heime via Users list for the GNU Emacs text editor Newsgroups: gmane.emacs.help Subject: Re: Checking conditions unrelated to expression Date: Sun, 08 Dec 2024 14:49:34 +0000 Message-ID: References: Reply-To: Heime Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="12054"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Heime via Users list for the GNU Emacs text editor To: thibaut.verron@gmail.com Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Sun Dec 08 15:50:36 2024 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1tKIcG-0002yO-9e for geh-help-gnu-emacs@m.gmane-mx.org; Sun, 08 Dec 2024 15:50:36 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tKIbU-0004jY-91; Sun, 08 Dec 2024 09:49:48 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tKIbS-0004jE-9S for help-gnu-emacs@gnu.org; Sun, 08 Dec 2024 09:49:46 -0500 Original-Received: from mail-106102.protonmail.ch ([79.135.106.102]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tKIbP-0006DH-Ku for help-gnu-emacs@gnu.org; Sun, 08 Dec 2024 09:49:45 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1733669380; x=1733928580; bh=J8YDj8dMbrX3cL+SWZMyolyZBX0XxjBB0ENUwQywkXg=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post; b=ATkcATUodDU+MHOqS7JjYsoKqMx5wbna1tb3AG6hVH6ULgXfYTIjNZ7hbsQP9EliA EDZfXGJ2EaDim7cFzpSG7s2LtJE2/WEwKm81ZPwShYfJ/yQ6vxmjswtQJWwJokOkGt vDW2X/3Q6KObRhCYFcpsAVMfFSO/3yR5k8Wk/IjwXAnLXI8bFCOJ9DFL8iRHnq05Yh 1wcO1HPaKPx05FQgvIAhALnQo7hj9c3sOovDhsqLHxsD/ccM3IQS6OFgtBtDHHchEE DMLDgRiX4W0+EHMtG5C2JY4H7ftk6Y0HwRbBgLIeR4FJgZil5gSLDSmUm5dJa2rahe pawip+rNDJDqg== In-Reply-To: Feedback-ID: 57735886:user:proton X-Pm-Message-ID: af50c8ee0a60fa023532cc3ec76997a7ba8ce0d4 Received-SPF: pass client-ip=79.135.106.102; envelope-from=heimeborgia@protonmail.com; helo=mail-106102.protonmail.ch X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.help:148681 Archived-At: Sent with Proton Mail secure email. On Monday, December 9th, 2024 at 12:31 AM, Thibaut Verron wrote: > Le dim. 8 d=C3=A9c. 2024 =C3=A0 13:06, Heime via Users list for the GNU E= macs text > editor help-gnu-emacs@gnu.org a =C3=A9crit : >=20 > > It looks like pcase can only be used with some variable condition > >=20 > > This will check condition of featr > >=20 > > (pcase featr > > ('this (do-this)) > > ('that (do-that)) > > (_ (message "some message")) > >=20 > > What if I want to check a number of conditions, not all dependent upon > > featr, what should one do? > >=20 > > Suppose I want to test (eq duck 'quack), cannot use a pcase because tes= ts > > are dependent upon featr. > >=20 > > (pcase featr > > ('this (do-this)) > > ('that (do-that)) > > (_ (message "some message")) >=20 >=20 > You can use a plain case-switch, rather than a pattern-matching one: >=20 > (cond > ((eq featr 'this) (do-this)) > ((eq featr 'that) (do-that)) > ((eq duck 'quack) (do-duck)) > (t (message "blabla"))) >=20 > https://www.gnu.org/s/emacs/manual/html_node/elisp/Conditionals.html >=20 > You can also replace the first two cases by a pattern-matching case, if > you'd like: >=20 > (cond > (pcase featr > ('this (do-this) t) ;; important to return non-nil in each branch > ('that (do-that) t) > (_ nil)) > ((eq duck 'quack) (do-duck)) > (t (message "blabla"))) But I cannot do the other way round, right? Cannot have a pcase using feat= r as EXP, but checking something else.