GNU logs - #71503, boring messages


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#71503: 30.0.50; pcase-lambda (with "and" and "guard") does not work as expected
Resent-From: Mekeor Melire <mekeor@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 12 Jun 2024 08:42:01 +0000
Resent-Message-ID: <handler.71503.B.171818167423009 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 71503
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: 71503 <at> debbugs.gnu.org
X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.171818167423009
          (code B ref -1); Wed, 12 Jun 2024 08:42:01 +0000
Received: (at submit) by debbugs.gnu.org; 12 Jun 2024 08:41:14 +0000
Received: from localhost ([127.0.0.1]:37505 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sHJXd-0005z3-Q1
	for submit <at> debbugs.gnu.org; Wed, 12 Jun 2024 04:41:14 -0400
Received: from lists.gnu.org ([209.51.188.17]:33808)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mekeor@HIDDEN>) id 1sHJXb-0005yv-DM
 for submit <at> debbugs.gnu.org; Wed, 12 Jun 2024 04:41:12 -0400
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 <mekeor@HIDDEN>) id 1sHJXc-00045B-Bk
 for bug-gnu-emacs@HIDDEN; Wed, 12 Jun 2024 04:41:12 -0400
Received: from mout01.posteo.de ([185.67.36.65])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <mekeor@HIDDEN>) id 1sHJXZ-0003Bw-GK
 for bug-gnu-emacs@HIDDEN; Wed, 12 Jun 2024 04:41:12 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id E51CA24002A
 for <bug-gnu-emacs@HIDDEN>; Wed, 12 Jun 2024 10:40:59 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.de; s=2017;
 t=1718181659; bh=6JVoAXghi92dpr9qpE2q1uFoi9n2IU2WxHlZi4CdHtU=;
 h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type:From;
 b=dE7+qPimuJl/y6MhbaYCETO2OvflgI8WGpBW3jll+KI4fNS2XXezAfM8ghL9bmxOw
 15olYMsEq86EUJKmpqf714Xo9fdQlQoMGdR06MqKkAiHUWZV+xVV/cECwAKYSYOlG8
 JL7m/TpGLXXQ1umfsxK2YYOesJiRw+B3NWcSTGffHgWGkKMyPjIXF9EjOvZzvYHefM
 PmzruF5VH8w/aVsQWCxK00bl4D2c0GoNSAEjfaQTOf79gae5U41tmxbLtqQXtjtsKZ
 9tGuY5MLbz8/39yPS5tJV9AVDdLoTEETqP5FKLWWPLwxCVhbFJW6Bd/X7MBxUs12ds
 vOfQjpHivJ3gA==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4VzfBz0Xgsz9rxD;
 Wed, 12 Jun 2024 10:40:59 +0200 (CEST)
From: Mekeor Melire <mekeor@HIDDEN>
Date: Wed, 12 Jun 2024 08:40:54 +0000
Message-ID: <87r0d2lfjd.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
Received-SPF: pass client-ip=185.67.36.65; envelope-from=mekeor@HIDDEN;
 helo=mout01.posteo.de
X-Spam_score_int: -43
X-Spam_score: -4.4
X-Spam_bar: ----
X-Spam_report: (-4.4 / 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,
 RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001,
 SPF_HELO_NONE=0.001, SPF_PASS=-0.001,
 T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.3 (-)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)

I was expecting these two expressions to evaluate to the same value.
First, we call `pcase' on a value with a pattern involving `and' and
`guard':

    (pcase "value"
      ((and v (guard (string= "not-value" v))) v))
    ;; => nil

Second, let's use the same value and pattern, but this time using
`pcase-lambda':

    (funcall
      (pcase-lambda
        ((and v (guard (string= "not-value" v)))) v)
      "value")
    ;; => "value"

Am I missing something or is this a bug?

In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
3.24.41, cairo version 1.16.0).




Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: Mekeor Melire <mekeor@HIDDEN>
Subject: bug#71503: Acknowledgement (30.0.50; pcase-lambda (with "and" and
 "guard") does not work as expected)
Message-ID: <handler.71503.B.171818167423009.ack <at> debbugs.gnu.org>
References: <87r0d2lfjd.fsf@HIDDEN>
X-Gnu-PR-Message: ack 71503
X-Gnu-PR-Package: emacs
Reply-To: 71503 <at> debbugs.gnu.org
Date: Wed, 12 Jun 2024 08:42:02 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 bug-gnu-emacs@HIDDEN

If you wish to submit further information on this problem, please
send it to 71503 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
71503: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D71503
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#71503: 30.0.50; pcase-lambda (with "and" and "guard") does not work as expected
Resent-From: Philip Kaludercic <philipk@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 14 Jun 2024 08:43:02 +0000
Resent-Message-ID: <handler.71503.B71503.171835455714334 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 71503
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Mekeor Melire <mekeor@HIDDEN>
Cc: 71503 <at> debbugs.gnu.org
Received: via spool by 71503-submit <at> debbugs.gnu.org id=B71503.171835455714334
          (code B ref 71503); Fri, 14 Jun 2024 08:43:02 +0000
Received: (at 71503) by debbugs.gnu.org; 14 Jun 2024 08:42:37 +0000
Received: from localhost ([127.0.0.1]:39903 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sI2W5-0003j8-8r
	for submit <at> debbugs.gnu.org; Fri, 14 Jun 2024 04:42:37 -0400
Received: from mout02.posteo.de ([185.67.36.66]:56037)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <philipk@HIDDEN>) id 1sI2W1-0003is-Bz
 for 71503 <at> debbugs.gnu.org; Fri, 14 Jun 2024 04:42:35 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 1E87A240104
 for <71503 <at> debbugs.gnu.org>; Fri, 14 Jun 2024 10:42:26 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1718354547; bh=0+fBUuPqMbugK6MqULc2J3dIzsoys3+Zi+7ltTaNuNA=;
 h=From:To:Cc:Subject:OpenPGP:Date:Message-ID:MIME-Version:
 Content-Type:From;
 b=q1AWFNmV7tGwsi+5Ls+hIeG08aAInFOt2W9afH0jPQR1r3Qz1tZTXHQOL5Qa77i29
 EIVowGTWIHZ6IzVOh9LdskCQiMWblzSBMz5ps4ZX+c3Cq+shsIf5pEETb7CmhPnHyn
 /qpLJ1JtbDQEQeTlVqnolRFuneLZ1dhEejeve2BkGaYCmzwKD0PAkzvtSCqBC21Ecz
 Qrox8k7oP6JZngAbXDi2GMR4UkTNruHQo/gXoQ/su8W3hzSqTBJZjQq1UUuE8AlWBY
 Gh3aumrt65LQOVICnwXk/Z/eG/5nvIFrKjzom5m8ZFqfp8QAtF7iM5KKa13oMnh3n2
 93W6qYFV8aDlg==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4W0t7k16bDz9rxL;
 Fri, 14 Jun 2024 10:42:26 +0200 (CEST)
From: Philip Kaludercic <philipk@HIDDEN>
In-Reply-To: <87r0d2lfjd.fsf@HIDDEN> (Mekeor Melire's message of "Wed, 12
 Jun 2024 08:40:54 +0000")
References: <87r0d2lfjd.fsf@HIDDEN>
OpenPGP: id=7126E1DE2F0CE35C770BED01F2C3CC513DB89F66;
 url="https://keys.openpgp.org/vks/v1/by-fingerprint/7126E1DE2F0CE35C770BED01F2C3CC513DB89F66";
 preference=signencrypt
Date: Fri, 14 Jun 2024 08:42:25 +0000
Message-ID: <87h6dvud8u.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Mekeor Melire <mekeor@HIDDEN> writes:

> I was expecting these two expressions to evaluate to the same value.
> First, we call `pcase' on a value with a pattern involving `and' and
> `guard':
>
>     (pcase "value"
>       ((and v (guard (string= "not-value" v))) v))
>     ;; => nil
>
> Second, let's use the same value and pattern, but this time using
> `pcase-lambda':
>
>     (funcall
>       (pcase-lambda
>         ((and v (guard (string= "not-value" v)))) v)
>       "value")
>     ;; => "value"
>
> Am I missing something or is this a bug?

The difference is that pcase-lambda doesn't do case-distinction, but
just pattern matching/destruncting.  So if the pattern-matching fails,
then the variable is just not bound, instead of the entire expression
falling back to returning no value/nil.  I am guessing you wanted to
have something like Scheme's `case-lambda'[0]?  Or we could clarify this
point in the docstring.

> In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
> 3.24.41, cairo version 1.16.0).

[0] https://index.scheme.org/filterset/r7rs_small/%28scheme%2520case-lambda%29/case-lambda

-- 
	Philip Kaludercic on peregrine




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#71503: 30.0.50; pcase-lambda (with "and" and "guard") does not work as expected
Resent-From: Drew Adams <drew.adams@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 14 Jun 2024 16:09:02 +0000
Resent-Message-ID: <handler.71503.B71503.17183813385977 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 71503
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Philip Kaludercic <philipk@HIDDEN>, Mekeor Melire <mekeor@HIDDEN>
Cc: "71503 <at> debbugs.gnu.org" <71503 <at> debbugs.gnu.org>
Received: via spool by 71503-submit <at> debbugs.gnu.org id=B71503.17183813385977
          (code B ref 71503); Fri, 14 Jun 2024 16:09:02 +0000
Received: (at 71503) by debbugs.gnu.org; 14 Jun 2024 16:08:58 +0000
Received: from localhost ([127.0.0.1]:40805 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sI9U1-0001YL-Rv
	for submit <at> debbugs.gnu.org; Fri, 14 Jun 2024 12:08:58 -0400
Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:24616)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <drew.adams@HIDDEN>) id 1sI9Tx-0001YA-9d
 for 71503 <at> debbugs.gnu.org; Fri, 14 Jun 2024 12:08:56 -0400
Received: from pps.filterd (m0246629.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 45EDH3ma022425;
 Fri, 14 Jun 2024 16:08:51 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=
 from:to:cc:subject:date:message-id:references:in-reply-to
 :content-type:content-transfer-encoding:mime-version; s=
 corp-2023-11-20; bh=EYz84K1x+xDkyT2BseCVLh48/14kJ9GCajv1rrjhZOI=; b=
 hdoG4aGGXoc0CMyzKSkvv/V5ly80KgMGZquhcdTh5fONeVUqq/f9z0cVe9MLQKX/
 /2SF9vj3FkiZK/4iwRee4QGBdpVUQ+UgjqyEnKd26iYwev/vcHdpPLmTm+ZjG+X6
 LTffDUCzlsge2ekHR6l7mTDdTvh4ugLxDkxBbZWNyFlinVX2pPcc7x2YbCrakgTt
 maJS63W+RUfzgRY2cdXlWqU9/MWwJbPC1iLe9X/HsmbLOmlrAfEFIx9SSyWxgGcG
 caTavasuM0qOe5CvCWYYUeqIyrwfraxTo+QcG8vkWYVge7qLgMr2rNBPv2dk7jXt
 EiYwLxfr5nJmB0JGRafgKA==
Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com
 (iadpaimrmta03.appoci.oracle.com [130.35.103.27])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3ymh7fuw68-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 14 Jun 2024 16:08:50 +0000 (GMT)
Received: from pps.filterd
 (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1])
 by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19)
 with ESMTP id 45EF1Hw3020432; Fri, 14 Jun 2024 16:08:49 GMT
Received: from nam12-dm6-obe.outbound.protection.outlook.com
 (mail-dm6nam12lp2169.outbound.protection.outlook.com [104.47.59.169])
 by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id
 3yncb04kpc-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 14 Jun 2024 16:08:49 +0000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=LARrTW00fkUD0DJoZZg3HJfe0sNlsuhmUak0Az28/3KKXTk3AOyIVl7MaAX6GVRonfBVS10Ni2RtqpjtWKi+hc2+q4Wy20PGYlbLGDEtNldlCEbg4VpVRpeQUgMUK1bDtfXqtRnFI65+6js7UBKkOWT1FQVKLUYq8dSEFtt2yacvX2m+0yiP3FvwgGZFfBHtVggf9SPJ1eyBavHyB87tZocQrRwr8pePsIQiyU8//A6EfNVYbc5puGi+odg5WJb5z3Q9hlfmkVLci/9IxwC/8zLPIaNATSJ0PhB2dJJ7AFSAWmSKu2R1/WrcwSqwiEAkDE2kkeYz1WiDFUUtXx6iUg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EYz84K1x+xDkyT2BseCVLh48/14kJ9GCajv1rrjhZOI=;
 b=Z8kypgRXKoWVvCrkt11livg15MFdmfIuDAuuF2dgFd930y0YwGHzf/uxyNQYhfvKlML6XLo2C5A83t7/CcnEWra0UG9glxUkLpo/08RijKcxCkiAbgAIY1JADRs7TjC8gEmFoiwTKGaGB4l5DtTrypGx/t2fSw+qpnMTH3jxcvyVLjeBOEWb2EQDnoLyJJFoGEFAwxFAbqTXf8YzS9nki0DCCMliU7KCojaea7tXOdZpj0aRaQmPYhK4S6Rw0K3uoSk57lPeqEGWMiSIFfLDmejAzzUaVqmg9aXAvUNU+WPpYz68fQTnvtjHpjvi0AF7xHdwzzupzIM2b5SJdcoyeQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=EYz84K1x+xDkyT2BseCVLh48/14kJ9GCajv1rrjhZOI=;
 b=qK1KOmKJ7I8TEV45zmtYXiTGydBosKGBvfeM0WHajq4CY/jBTSrqVq5kSi1xvCAmdDe+cbW9PryspWGAe015uWIedHiqmgc+cL9psGyVNAAfwYM9HEi9FcnCm+LK5iCGit+ANNfCITfNLcX3DuegcBVPei8bLChsppadko/01hM=
Received: from SJ0PR10MB5488.namprd10.prod.outlook.com (2603:10b6:a03:37e::19)
 by IA0PR10MB6794.namprd10.prod.outlook.com (2603:10b6:208:43a::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.40; Fri, 14 Jun
 2024 16:08:45 +0000
Received: from SJ0PR10MB5488.namprd10.prod.outlook.com
 ([fe80::b75a:ef76:884a:dd27]) by SJ0PR10MB5488.namprd10.prod.outlook.com
 ([fe80::b75a:ef76:884a:dd27%4]) with mapi id 15.20.7677.024; Fri, 14 Jun 2024
 16:08:41 +0000
From: Drew Adams <drew.adams@HIDDEN>
Thread-Topic: [External] : bug#71503: 30.0.50; pcase-lambda (with "and" and
 "guard") does not work as expected
Thread-Index: AQHavjbxZLFZfJRkeEWDusLQZL6YcbHHbEvw
Date: Fri, 14 Jun 2024 16:08:41 +0000
Message-ID: <SJ0PR10MB54884B3521161CC99C357428F3C22@HIDDEN>
References: <87r0d2lfjd.fsf@HIDDEN> <87h6dvud8u.fsf@HIDDEN>
In-Reply-To: <87h6dvud8u.fsf@HIDDEN>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SJ0PR10MB5488:EE_|IA0PR10MB6794:EE_
x-ms-office365-filtering-correlation-id: 110d6fc9-2239-47aa-1ff4-08dc8c8c4246
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0; ARA:13230037|1800799021|366013|376011|38070700015;
x-microsoft-antispam-message-info: w+e4JLh1itny8SHsX0lWlhLvm07or8qp71h9R9SuAfzDa+GSVBFezDXjncfjhX5daZYWCDWbSQrY/2VOQFSctrGMd0x7axvsR0opTtCW/SwHevY7AcL3NR+JYdU/xTs1Sh/WDUuinHwzKgld/i55/MHYOiwlf2PKrD7WYNaGnVvLDppnqU3F8KBrvOZ/V6S74+3n/5YwCpMvLSZhQ4OyM8pA/l5ZUVyFIOr5/CE2hAPwWNkrnsJGKkzfC6Z/spIdQ4vByxK912NvMA81NZ9qGK4E58XfS71oMZmz5kJErMCpcpC5/DL2166OEmVkOmt4MywqUkU9zjlRp0haTvNghc9ObZtKCRGK3x0/WRTjbndjGRjzKHuzwTAcb40bAsdpmujcEY2gE2JgubV8A2SYg3gYXZq/kSUwEgnaVEcMPr8jtsRDdiGb8pa2S53g5ZW6rq+hFkW+FysYijcfNGtiB41yng0HRyKtACBkixw9ZbPwMmZziW6DtLoMu2CXAjSDENNqTJf7WDsLKLhwXLWLgzoKu4usJEep3fYy90lG7P0Dmogxc2m3/0ncldxnjDJjzNHlI7ZSbtdiGYEomZYJWBK9+OaY7cxtAs+YwXW24cXHrk0FJ4UXxUmyU7hJduYdklL/l1o6H2PvDq0fxk9Z084JYB8O9H+H0zbKlCYdrXc8OJpj66tKpQ7dFjNXsolZ0yLzZKqEiyfK1osFUIPFe01u1GA9sQoqx0WsrPfah2Vqq5yuc8e2J8bM+9wBSXEha1A6ewzMgBBVbMuJte3nfq4q1o4JC39xVAY2VlLKeJc29kxyKcmfK7yo9wcvx8mpShSJJ7QdzE3KQDCG0w6jRyrp0+Rx9lAmvlI3DKH1OU4IORYaQXX1ZwXqZ6nbso8kbsgOzvsaCMUQvug/B60aCtZHoWHnQfX9rXoyRCJLPNESFDqbsNnxpUKBN56YMmr9wDZHBUJobzSYxBtlArXfHfFHuB0nYq1MDx1Efmdsxb5KAjjXx3sNzOPQ9zue4Ygvkn7ox0P4R19HSv7fRnnhP99CKCbHEOQG+Zwur3iEyYmUwOmkaDxQrD+zz0jc+pwkHEFgTOu+qz00RoLrOmNuCt5DTT8OYs3Ntr9Dc8IGQ5XhIO2pFYY8U1qSpEJ/vZjPil615Tp0lUkYsB1HBTFbdAQFH79vKS0U1pFtoh2tLM0g/KcQnMy5eyJVsUe+bMLafRlC3ooORbTCsh/yWt/bH+VPelpXJQGnnl0sLDyYXMhlkSH3RmltWHDtD+c301WvWOqhFZdhXeH0VqI7iDWwig/8PB7/Mqhohrkjdhxm/kFED6scDZ+wvIwRMEQP4kgBLIk7I4j2frnLU16teiwrFCclYO1xv4l/7iWuqOQQDDY=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:SJ0PR10MB5488.namprd10.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(13230037)(1800799021)(366013)(376011)(38070700015); DIR:OUT; SFP:1101; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: nklXICG6IPo1cR6FqCbTGZMT2Ju39Kn6aeIG1QWD1+AvS2sJCPKLplk6vftYkZKPfVo3tTseGAPOVprmuwkhzn1Eo23ZnePk2nTJvSgzXR6cvR0tgjXbGdhvlpCDlP1tYQoyjfd+tTdW/OyhPUnY67px2Pl2xhwFuGq8j2d/hAAodBJZdyihtDT22iS492Gj8rXbPIcIMCBueoCnxLhd3vLjTKHYdG9eGPPLtVkbw67B/O5arx7AUTvm5B5F4fhS4cb222eYMkAzC9OTBu8bNVgIV+ierckX/4B+ZCVv3G2CVQkARmHqwAu+QPy6YvUx8eAb6+lmBWNOod5EOoQJsZ8fgFVmUuvpQR1cq15b4pZvHJ7Lc1hn7kW932dtLGd5++mj4yUnMMj0Q5LaHQ6QwrWQxEW//CyJM8PrxY1tba3Px+/6Lb23Fu3NbUEvcCSvvz66PEnp7nBLkzMCdZFXhYacpwEvASfVk4kG2HAGCYDiyqJ3chE7QhIEyJBa1flOWPrrRoHVrfaTWyxpRuTDpGQ4OM27INdgADUaJLwg3KjbTBeBI1kelHNFDtWloSwlKjegG6ScthizbVmKkVmx0XhaqXQqVMUlw1gAIcJjdneRCG3nRESmLNWX72Zw9zVo2hzWvZ1EzaYdJ2K6K2g5n69LlX73PcdG9YCj50pmSQXb841v4+Yrab8HPsRMOoIRSHsQCOhtXKzTTEJ48hMmuvEa0wV4XdvpR15MgBa9cX5WXj4s7jYLbDzm/Gn5BO2wy6oPjrtXdEMs1fN2mNOxHA6eXkqMtHgncUfrkn6gSESEYXvk11iRnfv3UEjlwrRHJD8fr8VifTY/HuZXsb0ULrer929xXvQqoh/nt+0TweJUMm4o0+fHkhnxqICFiDIZY7almsSiChvCOgjMtVi/q85iV4CcbXs4zXvsmN7mhvtQ14bjZDki+GZjwCO7wYa6zxp4EHVMyky4sNcOx1devexO9aFjswt83LXlqIZRQzDgn7eXpG42bf66qfG/b7MqyxbcnSInupfYVd4Byc23tMrxbAzWTnxDpa7VJuzkbYgHNSB5xdIOCWXH3Ww9s/nfSG6V8w24ZXhiOa3jsbWTxMG4KX+wzBSUq/W1/dzDLJj6mjWsyVxCGYduoe3jQu6Fqpi7iP1SNGMWKN2wG0kAXk0jS1zb1th9x9Y3yYgPU9l0uMWs5KltEXkcF1CK0GB5edpZNxedSpqHO6pMSozbkMwV3JNRuKiFue9CKSAR/nZWS0lnC90xxrKjIyJezZ9bD7gFpqSQ6/REGrX9vuHcKp7SO1SRpBpOTEf643S74eAgFNiEtWhwWLG1tz/OXqCVQMK6KrpafWmv/nyWtukQ2n6NJSssk4RX+8D8+wXViMEcb6S7qIiBpeRjQT/LE415Rnoa8fk3ZrR4a1PKpcMgaYy1ryONe8mKop2pXdrYdV95JKKDCpkLqqaNCeh3RyQGYEWvJnWalU2WEAitFqst+wZypIS5GmWLM2QahiifEBG405x3iqdgy0Ip1ejlYrsUYfO1vE9Ze2zShWPC+rOoScupLg2SvSYizZBAqC9zwAzU2ZDsK26jOUUxg7dqS+TE
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 12MqkQg2crl0+XgC4DifUCyLW3mmOxCL3G4Ji5nEKLJSOGmGIJTM/kJrFqZKm+INo92u5c5w9Ylo8aSbgoJbDtFkC0P9Hefffse7l8pVyq9XKBp7XyjRwFhMM8owMeTxwBhDWEvGOLahIL95gPr5bCt4LbHoEFbTvvX3Z8KXL5nABkhVKiOURWTUCI9okGFd35qV/Sc5Ol7HJuhh6Dm0psSKYvwfSdtpQNhuh3qZ3oj86F1uY6EwM4Ws0KCtXXMhSw3W09hxyMOlvgfYm+8G/N4uG95nttcOnROtVV2rqwDAzJ7zB2lWuF+efdG4XzjjtYzNRgiTUf1P/g3VF4/WOTE2WQJQrx7P9Rg2ti7NiDvasZWq+hRzXbhjRMShYwvc5gkefBxIGr8wSLwVmnb0SQGx7w9mNrdRwxeiGw0Obx5sSat8hx7rKoUHEYsUrLPxjFo+0SPsRneZdLfWx8stltMp972fduIAp23JXU9EKzhoRLEQjKmlqOSHuNumPlSwomgJFPA9NUD/cXr/WMtMgKToZ42zqJbl5IedFAz5uTOUkVZsChLnEUPScVw74verLM4FaujTtaeEMMN1XQzNISYMkGUjhQDZ6UzhGlKBug4=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SJ0PR10MB5488.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 110d6fc9-2239-47aa-1ff4-08dc8c8c4246
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Jun 2024 16:08:41.4514 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: HVsN1mstynZKO9I2T+tww6mGJR7p5L6jK/q8I8rbsNQM8bhfeDoZ6u3picr0NMrsWflvAITl1on2PrlKXOsZag==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR10MB6794
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16
 definitions=2024-06-14_13,2024-06-14_03,2024-05-17_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0
 suspectscore=0
 malwarescore=0 spamscore=0 mlxscore=0 phishscore=0 mlxlogscore=673
 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2405010000 definitions=main-2406140109
X-Proofpoint-GUID: amMeJmA2b-BP1xO6VhBEHMBOQuNpNCIP
X-Proofpoint-ORIG-GUID: amMeJmA2b-BP1xO6VhBEHMBOQuNpNCIP
X-Spam-Score: -0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

> The difference is that pcase-lambda
> doesn't do case-distinction, but
> just pattern matching/destruncting.

Unless I'm mistaken, this confusion has
surfaced several times now...

Is it really a good idea to call this
"pcase-" <anything>, if it has nothing to
do with case distinction, i.e., control
flow?

Why not a name that suggests destructuring
or pattern-matching, and binding?  Common
Lisp at least calls its (weaker) construct
`destructuring-bind' - pretty clear.







Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#71503: 30.0.50; pcase-lambda (with "and" and "guard") does not work as expected
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sat, 22 Jun 2024 08:38:02 +0000
Resent-Message-ID: <handler.71503.B71503.171904543332294 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 71503
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Philip Kaludercic <philipk@HIDDEN>, Stefan Monnier <monnier@HIDDEN>
Cc: mekeor@HIDDEN, 71503 <at> debbugs.gnu.org
Received: via spool by 71503-submit <at> debbugs.gnu.org id=B71503.171904543332294
          (code B ref 71503); Sat, 22 Jun 2024 08:38:02 +0000
Received: (at 71503) by debbugs.gnu.org; 22 Jun 2024 08:37:13 +0000
Received: from localhost ([127.0.0.1]:44317 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sKwFE-0008Oo-Mg
	for submit <at> debbugs.gnu.org; Sat, 22 Jun 2024 04:37:13 -0400
Received: from eggs.gnu.org ([209.51.188.92]:54010)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1sKwFC-0008OY-Fi
 for 71503 <at> debbugs.gnu.org; Sat, 22 Jun 2024 04:37:11 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1sKwF7-0006U7-4A; Sat, 22 Jun 2024 04:37:05 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=KXvm8DK2QTtDmbqBDRSqnmVoWaO09yTrb76gfUrBmKY=; b=QHFFnTnd0pN6
 Ib5uh5bptJJAK8GxTh8BWP40EMnLe3Gc5g9hhLzewpwh2GjVnXX4WDbnye3d6bmgyMhLdNMMhb+Nl
 pZBqeS9N4eRj/uhtBsSzsAx9G2UwPwnRh9OxTrvwZiXcajDUPY2H/cL43SylFZNk4m2G5H3StBkpV
 Fmis0pyj85XgunreMDvGMFnN1/mYzkwMJVIFRvXnUZdIxn4+iGE5AOjCHMfCSf3XN95oRCQoOr+6H
 cxmOwLSTTmwFgJ6St7mhcBzqOZWqCIyDP7IA4APL2OWTaMVDibOOKA4KiP3NfoIRH5zgBOIw+aVo2
 8X4WnliAomoyKZomEyfYdQ==;
Date: Sat, 22 Jun 2024 11:37:02 +0300
Message-Id: <86tthlidap.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <87h6dvud8u.fsf@HIDDEN> (message from Philip Kaludercic on
 Fri, 14 Jun 2024 08:42:25 +0000)
References: <87r0d2lfjd.fsf@HIDDEN> <87h6dvud8u.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Cc: 71503 <at> debbugs.gnu.org
> From: Philip Kaludercic <philipk@HIDDEN>
> Date: Fri, 14 Jun 2024 08:42:25 +0000
> 
> Mekeor Melire <mekeor@HIDDEN> writes:
> 
> > I was expecting these two expressions to evaluate to the same value.
> > First, we call `pcase' on a value with a pattern involving `and' and
> > `guard':
> >
> >     (pcase "value"
> >       ((and v (guard (string= "not-value" v))) v))
> >     ;; => nil
> >
> > Second, let's use the same value and pattern, but this time using
> > `pcase-lambda':
> >
> >     (funcall
> >       (pcase-lambda
> >         ((and v (guard (string= "not-value" v)))) v)
> >       "value")
> >     ;; => "value"
> >
> > Am I missing something or is this a bug?
> 
> The difference is that pcase-lambda doesn't do case-distinction, but
> just pattern matching/destruncting.  So if the pattern-matching fails,
> then the variable is just not bound, instead of the entire expression
> falling back to returning no value/nil.  I am guessing you wanted to
> have something like Scheme's `case-lambda'[0]?  Or we could clarify this
> point in the docstring.

Would you mind suggesting a clarification for the doc string (and the
ELisp manual as well)?

Thanks.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#71503: 30.0.50; pcase-lambda (with "and" and "guard") does not work as expected
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sat, 06 Jul 2024 07:39:02 +0000
Resent-Message-ID: <handler.71503.B71503.172025149320355 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 71503
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: philipk@HIDDEN
Cc: mekeor@HIDDEN, monnier@HIDDEN, 71503 <at> debbugs.gnu.org
Received: via spool by 71503-submit <at> debbugs.gnu.org id=B71503.172025149320355
          (code B ref 71503); Sat, 06 Jul 2024 07:39:02 +0000
Received: (at 71503) by debbugs.gnu.org; 6 Jul 2024 07:38:13 +0000
Received: from localhost ([127.0.0.1]:45491 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sPzzp-0005IF-EO
	for submit <at> debbugs.gnu.org; Sat, 06 Jul 2024 03:38:13 -0400
Received: from eggs.gnu.org ([209.51.188.92]:43692)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1sPzzn-0005Hx-9J
 for 71503 <at> debbugs.gnu.org; Sat, 06 Jul 2024 03:38:12 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1sPzze-00038F-2C; Sat, 06 Jul 2024 03:38:02 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=AkFgevUKqLqlTOiWh5zqfE4tMaK+YvkaP3Ot4xwhuqI=; b=Nl7xZz8ivsuW
 EzmsWFD6NhUPLfRrp+qZmoWFsXz4eIOGGUCsibSj8gNOlKmJEIzXqRiWWPBod5L1XQ+M/bdsGW21l
 y4qJvI34G7YXODILLv+jLOTRMdY9UDJ6jjVXFd+ljhu//Y1f2+RnzDLJkXQuPEmMg2zeodfNX1nQ7
 qpK3/5dP6d21r3TqAnIl7m9UDDTBQ1gzXr4IlwRF4530UHyF8hh2mh3PmAqmU+EX68KdxfXgBy5FV
 iZMKqTb63/6PMTeeg3G5UxJQAwdt4vQ4bMcNLRgupw5msRAFqqArsJGJDZRDIvNGegbiJ9WncITQC
 fu6huPQKv+GLmgapMLv1ZA==;
Date: Sat, 06 Jul 2024 10:38:00 +0300
Message-Id: <86frsn55t3.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <86tthlidap.fsf@HIDDEN> (message from Eli Zaretskii on Sat, 22
 Jun 2024 11:37:02 +0300)
References: <87r0d2lfjd.fsf@HIDDEN> <87h6dvud8u.fsf@HIDDEN>
 <86tthlidap.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Ping!

> Cc: mekeor@HIDDEN, 71503 <at> debbugs.gnu.org
> Date: Sat, 22 Jun 2024 11:37:02 +0300
> From: Eli Zaretskii <eliz@HIDDEN>
> 
> > Cc: 71503 <at> debbugs.gnu.org
> > From: Philip Kaludercic <philipk@HIDDEN>
> > Date: Fri, 14 Jun 2024 08:42:25 +0000
> > 
> > Mekeor Melire <mekeor@HIDDEN> writes:
> > 
> > > I was expecting these two expressions to evaluate to the same value.
> > > First, we call `pcase' on a value with a pattern involving `and' and
> > > `guard':
> > >
> > >     (pcase "value"
> > >       ((and v (guard (string= "not-value" v))) v))
> > >     ;; => nil
> > >
> > > Second, let's use the same value and pattern, but this time using
> > > `pcase-lambda':
> > >
> > >     (funcall
> > >       (pcase-lambda
> > >         ((and v (guard (string= "not-value" v)))) v)
> > >       "value")
> > >     ;; => "value"
> > >
> > > Am I missing something or is this a bug?
> > 
> > The difference is that pcase-lambda doesn't do case-distinction, but
> > just pattern matching/destruncting.  So if the pattern-matching fails,
> > then the variable is just not bound, instead of the entire expression
> > falling back to returning no value/nil.  I am guessing you wanted to
> > have something like Scheme's `case-lambda'[0]?  Or we could clarify this
> > point in the docstring.
> 
> Would you mind suggesting a clarification for the doc string (and the
> ELisp manual as well)?
> 
> Thanks.
> 
> 
> 
> 




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#71503: 30.0.50; pcase-lambda (with "and" and "guard") does not work as expected
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sat, 20 Jul 2024 09:43:02 +0000
Resent-Message-ID: <handler.71503.B71503.172146857430665 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 71503
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: philipk@HIDDEN, mekeor@HIDDEN
Cc: monnier@HIDDEN, 71503 <at> debbugs.gnu.org
Received: via spool by 71503-submit <at> debbugs.gnu.org id=B71503.172146857430665
          (code B ref 71503); Sat, 20 Jul 2024 09:43:02 +0000
Received: (at 71503) by debbugs.gnu.org; 20 Jul 2024 09:42:54 +0000
Received: from localhost ([127.0.0.1]:51741 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sV6c9-0007yW-Sw
	for submit <at> debbugs.gnu.org; Sat, 20 Jul 2024 05:42:54 -0400
Received: from eggs.gnu.org ([209.51.188.92]:50840)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1sV6c8-0007yG-KQ
 for 71503 <at> debbugs.gnu.org; Sat, 20 Jul 2024 05:42:53 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1sV6c3-0001dh-2z; Sat, 20 Jul 2024 05:42:47 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=cDvBZkhCb4VcESEX/o3gldnyzkMKanq9cb8z8a5UDNM=; b=GutmEhGQSybH
 naaapPJK9iIumZmAYq3P6Yqx+Ftq9rN8OI1mvCgVOlTcxCoTHKwCY6ZxkaR5rVS0u5Uocg+LKBvM6
 Q//8f+IKgqsoHW1bnb90CJAwe94jKSx9q+tJqYQ+ZoFuqfNnamM5Xn6E0h7gC5os2Hk86qj3QtWOd
 /a4MJTZ1YVRjz3B3HGzg0uPJNsau3ab5fRDeBe7Nx086XOMMDJeuwC5eNPFDf8y355dMZITPqxdE0
 +uiMN8wuws2c+/JNCzWgNg1FPGNis3WqrMIg07dVt/eRKTQGR8E+Pz1kCxardw3mbU/CZnQL6ITpw
 r2W6YXNVoSV63+58guy7hg==;
Date: Sat, 20 Jul 2024 12:42:43 +0300
Message-Id: <865xt0e6wc.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <86frsn55t3.fsf@HIDDEN> (message from Eli Zaretskii on Sat, 06
 Jul 2024 10:38:00 +0300)
References: <87r0d2lfjd.fsf@HIDDEN> <87h6dvud8u.fsf@HIDDEN>
 <86tthlidap.fsf@HIDDEN> <86frsn55t3.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Ping! Ping!

> Cc: mekeor@HIDDEN, monnier@HIDDEN, 71503 <at> debbugs.gnu.org
> Date: Sat, 06 Jul 2024 10:38:00 +0300
> From: Eli Zaretskii <eliz@HIDDEN>
> 
> Ping!
> 
> > Cc: mekeor@HIDDEN, 71503 <at> debbugs.gnu.org
> > Date: Sat, 22 Jun 2024 11:37:02 +0300
> > From: Eli Zaretskii <eliz@HIDDEN>
> > 
> > > Cc: 71503 <at> debbugs.gnu.org
> > > From: Philip Kaludercic <philipk@HIDDEN>
> > > Date: Fri, 14 Jun 2024 08:42:25 +0000
> > > 
> > > Mekeor Melire <mekeor@HIDDEN> writes:
> > > 
> > > > I was expecting these two expressions to evaluate to the same value.
> > > > First, we call `pcase' on a value with a pattern involving `and' and
> > > > `guard':
> > > >
> > > >     (pcase "value"
> > > >       ((and v (guard (string= "not-value" v))) v))
> > > >     ;; => nil
> > > >
> > > > Second, let's use the same value and pattern, but this time using
> > > > `pcase-lambda':
> > > >
> > > >     (funcall
> > > >       (pcase-lambda
> > > >         ((and v (guard (string= "not-value" v)))) v)
> > > >       "value")
> > > >     ;; => "value"
> > > >
> > > > Am I missing something or is this a bug?
> > > 
> > > The difference is that pcase-lambda doesn't do case-distinction, but
> > > just pattern matching/destruncting.  So if the pattern-matching fails,
> > > then the variable is just not bound, instead of the entire expression
> > > falling back to returning no value/nil.  I am guessing you wanted to
> > > have something like Scheme's `case-lambda'[0]?  Or we could clarify this
> > > point in the docstring.
> > 
> > Would you mind suggesting a clarification for the doc string (and the
> > ELisp manual as well)?
> > 
> > Thanks.
> > 
> > 
> > 
> > 
> 
> 
> 
> 




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#71503: 30.0.50; pcase-lambda (with "and" and "guard") does not work as expected
Resent-From: Philip Kaludercic <philipk@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sat, 20 Jul 2024 10:31:02 +0000
Resent-Message-ID: <handler.71503.B71503.172147140914823 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 71503
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Eli Zaretskii <eliz@HIDDEN>
Cc: mekeor@HIDDEN, monnier@HIDDEN, 71503 <at> debbugs.gnu.org
Received: via spool by 71503-submit <at> debbugs.gnu.org id=B71503.172147140914823
          (code B ref 71503); Sat, 20 Jul 2024 10:31:02 +0000
Received: (at 71503) by debbugs.gnu.org; 20 Jul 2024 10:30:09 +0000
Received: from localhost ([127.0.0.1]:51868 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sV7Ls-0003qz-Kg
	for submit <at> debbugs.gnu.org; Sat, 20 Jul 2024 06:30:09 -0400
Received: from mout01.posteo.de ([185.67.36.65]:36751)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <philipk@HIDDEN>) id 1sV7Lq-0003pv-00
 for 71503 <at> debbugs.gnu.org; Sat, 20 Jul 2024 06:30:07 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 64177240028
 for <71503 <at> debbugs.gnu.org>; Sat, 20 Jul 2024 12:29:58 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1721471398; bh=bXOf150drr+G6o87o04NWuMeD7enAc9XE4FO6ByaCCM=;
 h=From:To:Cc:Subject:OpenPGP:Date:Message-ID:MIME-Version:
 Content-Type:From;
 b=I0KANMapo+d5LiItKPPKdV0Fl1N4pCbUkgGPCpea1/qcvpoQbh/9TIKcH/SVkmPIC
 bhl5EGST3iiP86vPlGWCc4whokBRlZBk2UeEIbOnGUDteo+SsFqyoYSi+yuGTobVZM
 4XxtLWMPhezYsvHcZnMULf4pXWqnuSTqN/sk8nZInhzlZg0eUIdcofgbyEGmwVAEBC
 P61iC9C0yNnwQW6vP9I6e6Byeb/3wo0CvhZ/RKJgi5dCuOLWQOFAA+B4IIb1HBqI6M
 v7lKQzirNjsCu82tvAb7ChMSBFvxKQQxzQGGkUYnUPmNl0eG4qbFg+HDiHyjoxGhdY
 BD9jKRJAJBeLw==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4WR2q909CWz6trs;
 Sat, 20 Jul 2024 12:29:55 +0200 (CEST)
From: Philip Kaludercic <philipk@HIDDEN>
In-Reply-To: <865xt0e6wc.fsf@HIDDEN> (Eli Zaretskii's message of "Sat, 20 Jul
 2024 12:42:43 +0300")
References: <87r0d2lfjd.fsf@HIDDEN> <87h6dvud8u.fsf@HIDDEN>
 <86tthlidap.fsf@HIDDEN> <86frsn55t3.fsf@HIDDEN>
 <865xt0e6wc.fsf@HIDDEN>
OpenPGP: id=7126E1DE2F0CE35C770BED01F2C3CC513DB89F66;
 url="https://keys.openpgp.org/vks/v1/by-fingerprint/7126E1DE2F0CE35C770BED01F2C3CC513DB89F66";
 preference=signencrypt
Date: Sat, 20 Jul 2024 10:29:55 +0000
Message-ID: <87ikx0mk4c.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

--=-=-=
Content-Type: text/plain

Eli Zaretskii <eliz@HIDDEN> writes:

> Ping! Ping!
>
>> Cc: mekeor@HIDDEN, monnier@HIDDEN, 71503 <at> debbugs.gnu.org
>> Date: Sat, 06 Jul 2024 10:38:00 +0300
>> From: Eli Zaretskii <eliz@HIDDEN>
>> 
>> Ping!
>> 
>> > Cc: mekeor@HIDDEN, 71503 <at> debbugs.gnu.org
>> > Date: Sat, 22 Jun 2024 11:37:02 +0300
>> > From: Eli Zaretskii <eliz@HIDDEN>
>> > 
>> > > Cc: 71503 <at> debbugs.gnu.org
>> > > From: Philip Kaludercic <philipk@HIDDEN>
>> > > Date: Fri, 14 Jun 2024 08:42:25 +0000
>> > > 
>> > > Mekeor Melire <mekeor@HIDDEN> writes:
>> > > 
>> > > > I was expecting these two expressions to evaluate to the same value.
>> > > > First, we call `pcase' on a value with a pattern involving `and' and
>> > > > `guard':
>> > > >
>> > > >     (pcase "value"
>> > > >       ((and v (guard (string= "not-value" v))) v))
>> > > >     ;; => nil
>> > > >
>> > > > Second, let's use the same value and pattern, but this time using
>> > > > `pcase-lambda':
>> > > >
>> > > >     (funcall
>> > > >       (pcase-lambda
>> > > >         ((and v (guard (string= "not-value" v)))) v)
>> > > >       "value")
>> > > >     ;; => "value"
>> > > >
>> > > > Am I missing something or is this a bug?
>> > > 
>> > > The difference is that pcase-lambda doesn't do case-distinction, but
>> > > just pattern matching/destruncting.  So if the pattern-matching fails,
>> > > then the variable is just not bound, instead of the entire expression
>> > > falling back to returning no value/nil.  I am guessing you wanted to
>> > > have something like Scheme's `case-lambda'[0]?  Or we could clarify this
>> > > point in the docstring.
>> > 
>> > Would you mind suggesting a clarification for the doc string (and the
>> > ELisp manual as well)?

Sorry, I didn't realise you were pining me.  I was thinking of something
like


--=-=-=
Content-Type: text/plain
Content-Disposition: inline

diff --git a/lisp/emacs-lisp/pcase.el b/lisp/emacs-lisp/pcase.el
index 5a7f3995311..f546ba34c7c 100644
--- a/lisp/emacs-lisp/pcase.el
+++ b/lisp/emacs-lisp/pcase.el
@@ -241,9 +241,10 @@ pcase-exhaustive
 ;;;###autoload
 (defmacro pcase-lambda (lambda-list &rest body)
   "Like `lambda' but allow each argument to be a pattern.
-I.e. accepts the usual &optional and &rest keywords, but every
-formal argument can be any pattern accepted by `pcase' (a mere
-variable name being but a special case of it)."
+I.e. accepts the usual &optional and &rest keywords, but every formal
+argument can be any pattern accepted by `pcase' (a mere variable name
+being but a special case of it).  Keep in mind that BODY is always
+evaluated, regardless of whether the argument-patterns match or not."
   (declare (doc-string 2) (indent defun)
            (debug (&define (&rest pcase-PAT) lambda-doc def-body)))
   (let* ((bindings ())

--=-=-=
Content-Type: text/plain


but now I notice that `pcase-let*' documents that all expressions should
match,

  Each EXP should match its respective PATTERN (i.e. be of structure
  compatible to PATTERN); a mismatch may signal an error or may go
  undetected, binding variables to arbitrary values, such as nil.

Since `pcase-lambda' inherits these semantics we would have to propagate
this promise -- or be more specific about what happens, e.g. binding
values to nil.

>> > Thanks.

-- 
	Philip Kaludercic on peregrine

--=-=-=--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#71503: 30.0.50; pcase-lambda (with "and" and "guard") does not work as expected
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sat, 20 Jul 2024 10:47:02 +0000
Resent-Message-ID: <handler.71503.B71503.172147241616374 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 71503
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Philip Kaludercic <philipk@HIDDEN>
Cc: mekeor@HIDDEN, monnier@HIDDEN, 71503 <at> debbugs.gnu.org
Received: via spool by 71503-submit <at> debbugs.gnu.org id=B71503.172147241616374
          (code B ref 71503); Sat, 20 Jul 2024 10:47:02 +0000
Received: (at 71503) by debbugs.gnu.org; 20 Jul 2024 10:46:56 +0000
Received: from localhost ([127.0.0.1]:51878 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sV7c8-0004G1-77
	for submit <at> debbugs.gnu.org; Sat, 20 Jul 2024 06:46:56 -0400
Received: from eggs.gnu.org ([209.51.188.92]:58138)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1sV7c6-0004Fo-Je
 for 71503 <at> debbugs.gnu.org; Sat, 20 Jul 2024 06:46:55 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1sV7c0-0005P0-JW; Sat, 20 Jul 2024 06:46:48 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=pc8zMUWAkcxM5zOhFo5bavnNPiP1DfwXKldLIJm/j4U=; b=VQm35qZcSNX8
 uYtOJB5OrGVOUJyKaTJtOqD6BvJ0ObSn+zTTjxTdvknqnreHXBdTLjYFKmPuzjYZXMTQOM7z0ilNo
 GZ+W56OWOFBHKDzN99E4Ap304J1QnyOp7NzJvx4FrSHNoRdw5eg2EtTIUSo3ETRrQ1HT8nM0ewU0j
 tgcL7/HxyT1h/YmvplyLIk+l/xQYmfzOdnYxKR99BpYq7BIkgcX4+6JAIs4b4mltbeWsnGCRq88oB
 GQU4/OJydSo3h2IMAMx13h4HHpaIFycCBKpfuUICw7JGtIFrsUNzufyTXBH9samDemAzeJC2lws4e
 gU3cHtD1MsvEqeNb5iBCUA==;
Date: Sat, 20 Jul 2024 13:46:45 +0300
Message-Id: <86r0bocpd6.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <87ikx0mk4c.fsf@HIDDEN> (message from Philip Kaludercic on
 Sat, 20 Jul 2024 10:29:55 +0000)
References: <87r0d2lfjd.fsf@HIDDEN> <87h6dvud8u.fsf@HIDDEN>
 <86tthlidap.fsf@HIDDEN> <86frsn55t3.fsf@HIDDEN>
 <865xt0e6wc.fsf@HIDDEN> <87ikx0mk4c.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Philip Kaludercic <philipk@HIDDEN>
> Cc: mekeor@HIDDEN,  monnier@HIDDEN,  71503 <at> debbugs.gnu.org
> Date: Sat, 20 Jul 2024 10:29:55 +0000
> 
> >> > > The difference is that pcase-lambda doesn't do case-distinction, but
> >> > > just pattern matching/destruncting.  So if the pattern-matching fails,
> >> > > then the variable is just not bound, instead of the entire expression
> >> > > falling back to returning no value/nil.  I am guessing you wanted to
> >> > > have something like Scheme's `case-lambda'[0]?  Or we could clarify this
> >> > > point in the docstring.
> >> > 
> >> > Would you mind suggesting a clarification for the doc string (and the
> >> > ELisp manual as well)?
> 
> Sorry, I didn't realise you were pining me.  I was thinking of something
> like
> 
> diff --git a/lisp/emacs-lisp/pcase.el b/lisp/emacs-lisp/pcase.el
> index 5a7f3995311..f546ba34c7c 100644
> --- a/lisp/emacs-lisp/pcase.el
> +++ b/lisp/emacs-lisp/pcase.el
> @@ -241,9 +241,10 @@ pcase-exhaustive
>  ;;;###autoload
>  (defmacro pcase-lambda (lambda-list &rest body)
>    "Like `lambda' but allow each argument to be a pattern.
> -I.e. accepts the usual &optional and &rest keywords, but every
> -formal argument can be any pattern accepted by `pcase' (a mere
> -variable name being but a special case of it)."
> +I.e. accepts the usual &optional and &rest keywords, but every formal
> +argument can be any pattern accepted by `pcase' (a mere variable name
> +being but a special case of it).  Keep in mind that BODY is always
> +evaluated, regardless of whether the argument-patterns match or not."
>    (declare (doc-string 2) (indent defun)
>             (debug (&define (&rest pcase-PAT) lambda-doc def-body)))
>    (let* ((bindings ())
> 
> but now I notice that `pcase-let*' documents that all expressions should
> match,
> 
>   Each EXP should match its respective PATTERN (i.e. be of structure
>   compatible to PATTERN); a mismatch may signal an error or may go
>   undetected, binding variables to arbitrary values, such as nil.
> 
> Since `pcase-lambda' inherits these semantics we would have to propagate
> this promise -- or be more specific about what happens, e.g. binding
> values to nil.

Thanks.  If this still can be fixed by some documentation changes, I'd
prefer to do that.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#71503: 30.0.50; pcase-lambda (with "and" and "guard") does not work as expected
Resent-From: Stefan Monnier <monnier@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sat, 20 Jul 2024 14:07:01 +0000
Resent-Message-ID: <handler.71503.B71503.172148441117686 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 71503
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Philip Kaludercic <philipk@HIDDEN>
Cc: mekeor@HIDDEN, Eli Zaretskii <eliz@HIDDEN>, 71503 <at> debbugs.gnu.org
Received: via spool by 71503-submit <at> debbugs.gnu.org id=B71503.172148441117686
          (code B ref 71503); Sat, 20 Jul 2024 14:07:01 +0000
Received: (at 71503) by debbugs.gnu.org; 20 Jul 2024 14:06:51 +0000
Received: from localhost ([127.0.0.1]:53713 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sVAja-0004b9-Gy
	for submit <at> debbugs.gnu.org; Sat, 20 Jul 2024 10:06:50 -0400
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:60029)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1sVAjZ-0004aq-5f
 for 71503 <at> debbugs.gnu.org; Sat, 20 Jul 2024 10:06:49 -0400
Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1])
 by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id AD1794400B7;
 Sat, 20 Jul 2024 10:06:41 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
 s=mail; t=1721484400;
 bh=W9gr0pIePc3axyk6u/4iLz6/zg0A7o8/Cd3dewW1m+A=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=Ayu1yrx0gE0uBzbPfpuwpfb17wtoaguvJ/iekqMT9XAFZFxqxCqy+2P28AkUp9kA2
 KTbLwH1RRHJsISHjHjjeadT0eDWt4627HJXrebtni9NyPtqOgfHRnrXjl5/if5hlh+
 Q9iyK1tbr4oj8qz7ccG8svuITRIL9ZvtLG8yeLbBzZZpD9Nxl9ywSjM3g3L+tu/cgq
 gUTckyM5ERDtpE5ZhWvX8OmUvN1s+1QByVcF+VBEdu/mVSKgZPIKV2twfBB01w8b7V
 Wet7IetrxlS/pN/rT7f0udyZDXlwj/RRTaZcLG1R8H/CKbcrCg09p/o1RRn3lF7ElK
 XKWQTAZyEzu5Q==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
 by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 28725440B54;
 Sat, 20 Jul 2024 10:06:40 -0400 (EDT)
Received: from pastel (unknown [45.72.245.253])
 by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id E8B1212014D;
 Sat, 20 Jul 2024 10:06:39 -0400 (EDT)
From: Stefan Monnier <monnier@HIDDEN>
In-Reply-To: <87ikx0mk4c.fsf@HIDDEN> (Philip Kaludercic's message of "Sat, 
 20 Jul 2024 10:29:55 +0000")
Message-ID: <jwvy15w5fic.fsf-monnier+emacs@HIDDEN>
References: <87r0d2lfjd.fsf@HIDDEN> <87h6dvud8u.fsf@HIDDEN>
 <86tthlidap.fsf@HIDDEN> <86frsn55t3.fsf@HIDDEN>
 <865xt0e6wc.fsf@HIDDEN> <87ikx0mk4c.fsf@HIDDEN>
Date: Sat, 20 Jul 2024 10:06:18 -0400
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results:  0
 ALL_TRUSTED                -1 Passed through trusted hosts only via SMTP
 AWL -0.251 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DKIM_SIGNED               0.1 Message has a DKIM or DK signature,
 not necessarily valid
 DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
 DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
 domain
 DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
 domain
X-SPAM-LEVEL: 
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

>  (defmacro pcase-lambda (lambda-list &rest body)
>    "Like `lambda' but allow each argument to be a pattern.
> -I.e. accepts the usual &optional and &rest keywords, but every
> -formal argument can be any pattern accepted by `pcase' (a mere
> -variable name being but a special case of it)."
> +I.e. accepts the usual &optional and &rest keywords, but every formal
> +argument can be any pattern accepted by `pcase' (a mere variable name
> +being but a special case of it).  Keep in mind that BODY is always
> +evaluated, regardless of whether the argument-patterns match or not."
>    (declare (doc-string 2) (indent defun)
>             (debug (&define (&rest pcase-PAT) lambda-doc def-body)))
>    (let* ((bindings ())

I tend to call "any pattern accepted by `pcase'" a "Pcase pattern".
More importantly, we should refer to `pcase-let` rather than to
`pcase` here and we should likely use the term "destructuring (binding)".


        Stefan





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#71503: 30.0.50; pcase-lambda (with "and" and "guard") does not work as expected
Resent-From: Philip Kaludercic <philipk@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 21 Jul 2024 11:18:01 +0000
Resent-Message-ID: <handler.71503.B71503.172156063828625 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 71503
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Eli Zaretskii <eliz@HIDDEN>
Cc: mekeor@HIDDEN, monnier@HIDDEN, 71503 <at> debbugs.gnu.org
Received: via spool by 71503-submit <at> debbugs.gnu.org id=B71503.172156063828625
          (code B ref 71503); Sun, 21 Jul 2024 11:18:01 +0000
Received: (at 71503) by debbugs.gnu.org; 21 Jul 2024 11:17:18 +0000
Received: from localhost ([127.0.0.1]:54805 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sVUZ3-0007Rd-Qa
	for submit <at> debbugs.gnu.org; Sun, 21 Jul 2024 07:17:18 -0400
Received: from mout01.posteo.de ([185.67.36.65]:40137)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <philipk@HIDDEN>) id 1sVUZ1-0007RP-9H
 for 71503 <at> debbugs.gnu.org; Sun, 21 Jul 2024 07:17:16 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 21552240029
 for <71503 <at> debbugs.gnu.org>; Sun, 21 Jul 2024 13:17:07 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1721560627; bh=d1mXl20sg7Tvz1u7CW9gmumWDFBhXt7tXcfdHA+24SQ=;
 h=From:To:Cc:Subject:OpenPGP:Date:Message-ID:MIME-Version:
 Content-Type:From;
 b=Mb+0aoh8/njkKJr6dPnqrBCJSJDWHQzX2zGL0NqkxLnanxLiWyZF1kZI0SnIo5rea
 +ZII80lP5F6DyN4k975eTYG4tCLx3hIA+0v78D3Kt4NHfx/dTwA1dofGiPlf+fTccD
 n60J5puDi2N00W4bo8QeZxSYE7mHs+J5vbmrQ0XXqy+Q+5R50I06fgjVdRr/wFCQ1a
 U7OXhWmccifL7eKc52Qwf/Gx2R0tTP+u+8YWuaMNLHdCvzhGh+p4iurleF1NwtgVuD
 Ok1hvwDTIy7x68RnCnC/xWg07EPhLXavufUmvEQmsvYExewM/zYxhbzP1tYxHgiTxe
 vUV6L31/+jQDA==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4WRgq61fvZz6tlh;
 Sun, 21 Jul 2024 13:17:06 +0200 (CEST)
From: Philip Kaludercic <philipk@HIDDEN>
In-Reply-To: <86r0bocpd6.fsf@HIDDEN> (Eli Zaretskii's message of "Sat, 20 Jul
 2024 13:46:45 +0300")
References: <87r0d2lfjd.fsf@HIDDEN> <87h6dvud8u.fsf@HIDDEN>
 <86tthlidap.fsf@HIDDEN> <86frsn55t3.fsf@HIDDEN>
 <865xt0e6wc.fsf@HIDDEN> <87ikx0mk4c.fsf@HIDDEN>
 <86r0bocpd6.fsf@HIDDEN>
OpenPGP: id=7126E1DE2F0CE35C770BED01F2C3CC513DB89F66;
 url="https://keys.openpgp.org/vks/v1/by-fingerprint/7126E1DE2F0CE35C770BED01F2C3CC513DB89F66";
 preference=signencrypt
Date: Sun, 21 Jul 2024 11:17:05 +0000
Message-ID: <87zfqbkn9q.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

--=-=-=
Content-Type: text/plain

Eli Zaretskii <eliz@HIDDEN> writes:

>> From: Philip Kaludercic <philipk@HIDDEN>
>> Cc: mekeor@HIDDEN,  monnier@HIDDEN,  71503 <at> debbugs.gnu.org
>> Date: Sat, 20 Jul 2024 10:29:55 +0000
>> 
>> >> > > The difference is that pcase-lambda doesn't do case-distinction, but
>> >> > > just pattern matching/destruncting.  So if the pattern-matching fails,
>> >> > > then the variable is just not bound, instead of the entire expression
>> >> > > falling back to returning no value/nil.  I am guessing you wanted to
>> >> > > have something like Scheme's `case-lambda'[0]?  Or we could
>> >> > > clarify this
>> >> > > point in the docstring.
>> >> > 
>> >> > Would you mind suggesting a clarification for the doc string (and the
>> >> > ELisp manual as well)?
>> 
>> Sorry, I didn't realise you were pining me.  I was thinking of something
>> like
>> 
>> diff --git a/lisp/emacs-lisp/pcase.el b/lisp/emacs-lisp/pcase.el
>> index 5a7f3995311..f546ba34c7c 100644
>> --- a/lisp/emacs-lisp/pcase.el
>> +++ b/lisp/emacs-lisp/pcase.el
>> @@ -241,9 +241,10 @@ pcase-exhaustive
>>  ;;;###autoload
>>  (defmacro pcase-lambda (lambda-list &rest body)
>>    "Like `lambda' but allow each argument to be a pattern.
>> -I.e. accepts the usual &optional and &rest keywords, but every
>> -formal argument can be any pattern accepted by `pcase' (a mere
>> -variable name being but a special case of it)."
>> +I.e. accepts the usual &optional and &rest keywords, but every formal
>> +argument can be any pattern accepted by `pcase' (a mere variable name
>> +being but a special case of it).  Keep in mind that BODY is always
>> +evaluated, regardless of whether the argument-patterns match or not."
>>    (declare (doc-string 2) (indent defun)
>>             (debug (&define (&rest pcase-PAT) lambda-doc def-body)))
>>    (let* ((bindings ())
>> 
>> but now I notice that `pcase-let*' documents that all expressions should
>> match,
>> 
>>   Each EXP should match its respective PATTERN (i.e. be of structure
>>   compatible to PATTERN); a mismatch may signal an error or may go
>>   undetected, binding variables to arbitrary values, such as nil.
>> 
>> Since `pcase-lambda' inherits these semantics we would have to propagate
>> this promise -- or be more specific about what happens, e.g. binding
>> values to nil.
>
> Thanks.  If this still can be fixed by some documentation changes, I'd
> prefer to do that.

In that case I think it would be better to stick to a warning like the
one in `pcase-let*'..

Stefan Monnier <monnier@HIDDEN> writes:


[...]

> I tend to call "any pattern accepted by `pcase'" a "Pcase pattern".
> More importantly, we should refer to `pcase-let` rather than to
> `pcase` here and we should likely use the term "destructuring (binding)".

What do you think of:


--=-=-=
Content-Type: text/plain
Content-Disposition: inline

diff --git a/lisp/emacs-lisp/pcase.el b/lisp/emacs-lisp/pcase.el
index 5a7f3995311..fd6b0c8db5c 100644
--- a/lisp/emacs-lisp/pcase.el
+++ b/lisp/emacs-lisp/pcase.el
@@ -241,9 +241,14 @@ pcase-exhaustive
 ;;;###autoload
 (defmacro pcase-lambda (lambda-list &rest body)
   "Like `lambda' but allow each argument to be a pattern.
-I.e. accepts the usual &optional and &rest keywords, but every
-formal argument can be any pattern accepted by `pcase' (a mere
-variable name being but a special case of it)."
+I.e. accepts the usual &optional and &rest keywords, but every formal
+argument can be any pattern destructed by `pcase-let' (a mere variable
+name being but a special case of it).
+
+Each argument should match its respective pattern in the parameter
+list (i.e. be of a compatible structure); a mismatch may signal an error
+or may go undetected, binding arguments to arbitrary values, such as
+nil."
   (declare (doc-string 2) (indent defun)
            (debug (&define (&rest pcase-PAT) lambda-doc def-body)))
   (let* ((bindings ())

--=-=-=
Content-Type: text/plain




>         Stefan
>

-- 
	Philip Kaludercic on peregrine

--=-=-=--





Last modified: Sun, 21 Jul 2024 11:30:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.