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).
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
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
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.
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.
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. > > > >
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. > > > > > > > > > > > >
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 --=-=-=--
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.
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
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 --=-=-=--
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.