From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Lynn Winebarger Newsgroups: gmane.emacs.devel Subject: Re: Instead of pcase Date: Mon, 4 Dec 2023 07:35:48 -0500 Message-ID: References: <87fs169mjj.fsf@posteo.net> <093f11a1-57c2-5e56-d39b-26fef1c67cbb@gutov.dev> <25942.25061.217864.329049@retriever.mtv.corp.google.com> <87zfzdcz6z.fsf@posteo.net> <763f067b-4ca9-1eba-9f3c-424c38589e9c@gutov.dev> <83fs0navpj.fsf@gnu.org> <838r6ebfhw.fsf@gnu.org> <83zfyu9wdg.fsf@gnu.org> <87edg69tup.fsf@linux-m68k.org> <83zfyq5gds.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="0000000000004de1aa060bae5c6c" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="5607"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Richard Stallman , schwab@linux-m68k.org, emacs-devel To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Dec 04 13:36:58 2023 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rA8C1-0001Ca-TW for ged-emacs-devel@m.gmane-mx.org; Mon, 04 Dec 2023 13:36:58 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rA8BD-0004qF-IQ; Mon, 04 Dec 2023 07:36:07 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rA8BC-0004q2-DJ for emacs-devel@gnu.org; Mon, 04 Dec 2023 07:36:06 -0500 Original-Received: from mail-pg1-x52e.google.com ([2607:f8b0:4864:20::52e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rA8B9-0004vK-Pc; Mon, 04 Dec 2023 07:36:05 -0500 Original-Received: by mail-pg1-x52e.google.com with SMTP id 41be03b00d2f7-5c690c3d113so613881a12.1; Mon, 04 Dec 2023 04:36:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701693361; x=1702298161; darn=gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=0tKn7Syg/ewmlUl2d8u7t/TC1hXkaYpI72dRCu3KaIQ=; b=BmwBr4EQBgWTIun+mVv5l8CkY58sv2cHDDEKeRp2z1EinVwhCXV80ro3sewc+tx3c7 EeEI3F6x2lP5JlRpYlEPq5F0F8f+rKd+29X+3WQSmgvbqUhqk2asIw0FnIHHDE5xt+4x UYlnA1Trh4ce7n3LBzeDoEgJyjSunjcWlK610KPGR3GVrn5mNJFubs8TSRNyBnTBSmgA TD8wuGQO7zfPBHIxLrgc7bhMRGxJcEJQiLRL6SPQSzApAn1NStwc3YeeQNOgWm100iZq lxgwoiX04CiOpo9MeUUsbC939cpy21ib/ltRaXgx45CAKKfideQd3T0Iy47YZwm69his nbLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701693361; x=1702298161; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=0tKn7Syg/ewmlUl2d8u7t/TC1hXkaYpI72dRCu3KaIQ=; b=hlDcWsJB1HArQbp5yUe3M5BpwUou8dfEoX3LG2jxcgi9Q3m0OAmZesk001Vef3fX9f Hd9own/eHkV7tP6Zxc5ragAF3ar9p99mqnHeTQkbZ58mQGTdJsFSa3YrGc9YUiry2JMK xd9/p7vsXINIWkGYYte5k1P6SyViLHeMnQfhRyCMjdmk2yqmGyIltZqYl6gnQkg3d+u4 sJxJi10PWJBRZFn1HZoqbE6g0PJpyH6UYIkP+8D6gwmtODn1Jq43KmH4dyUwPp2NYUxY 4lkeTL1LDHQLrO1HTShPIsIWi2s0dgBTjcE5hQmrwrjSU5SqMkN536YbMlTXvaWutVIh ii2A== X-Gm-Message-State: AOJu0YwxGLeM6OrFVJU0iaj+lATrP5k3dZd3jQhsvbDxevuVsOb4QAmE uNp6FTrbIghn4G24JFcYLKWENBUlReCBqyxdOArhEvfR X-Google-Smtp-Source: AGHT+IGyOtBmBffSQg4uO9lsaadz5WV2AvxJCzUVtFKiw9kZpjiMNwl6y8+ZzoVAQ0vvbk4npTh2EWQaCyOtDm1h/ls= X-Received: by 2002:a17:90b:4ac3:b0:286:83f8:48f3 with SMTP id mh3-20020a17090b4ac300b0028683f848f3mr2242662pjb.28.1701693361085; Mon, 04 Dec 2023 04:36:01 -0800 (PST) In-Reply-To: <83zfyq5gds.fsf@gnu.org> Received-SPF: pass client-ip=2607:f8b0:4864:20::52e; envelope-from=owinebar@gmail.com; helo=mail-pg1-x52e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:313517 Archived-At: --0000000000004de1aa060bae5c6c Content-Type: text/plain; charset="UTF-8" On Mon, Dec 4, 2023, 6:58 AM Eli Zaretskii wrote: > > From: Richard Stallman > > Cc: emacs-devel@gnu.org > > Date: Sun, 03 Dec 2023 22:08:21 -0500 > > > > > This is not true. There is no magic at all in the use of this reader > > > feature which is totally lost after reading. It is absolutely > > > impossible to detect its use afterwards. > > > > As a factual matter about dotted pairs in pcase patterns, that is > > correct. > > > > However, we have repeatedly seen that experienced Lispers, who would > > have no trouble understanding those constructs in a backquote meant to > > actually construct a structure of conses, don't know what to make of > > them on encountering them in pcase patterns. > > > > That's another factual matter about dotted pairs in pcase patterns. > > It is more a psychological matter than a computational matter, but > > that doesn't invalidate the observation. > > > > It is part of the impact of complexity of pcase. > > Some people are saying that everything is clear because the Lisp > reader does this and that. But when humans read code, they don't > normally run the Lisp reader in their head, they use other techniques > to read and grasp what the code does. If there's a need to ask what > does the Lisp reader do with some syntax, that is already an obstacle > to understanding the code, even though eventually one can understand > it, whether by thinking what the reader does or by actually running > the reader and/or macro-expansion. > I'm saying it makes no sense to me to lay the blame at the feet of the pcase syntax. Elisp will happily evaluate the expression (if . ( t . (nil . (t . nil)))) Would you, or anyone, say that reflects some flaw in the design of the "if" form? Lynn --0000000000004de1aa060bae5c6c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Mon, Dec 4, 2023, 6:58 AM Eli Zaretskii <eliz@gnu.org> wrote:
> From: Richard Stallman <rms@gnu.org>
> Cc: emacs-devel@gnu.org
> Date: Sun, 03 Dec 2023 22:08:21 -0500
>
>=C2=A0 =C2=A0> This is not true.=C2=A0 There is no magic at all in t= he use of this reader
>=C2=A0 =C2=A0> feature which is totally lost after reading.=C2=A0 It= is absolutely
>=C2=A0 =C2=A0> impossible to detect its use afterwards.
>
> As a factual matter about dotted pairs in pcase patterns, that is
> correct.
>
> However, we have repeatedly seen that experienced Lispers, who would > have no trouble understanding those constructs in a backquote meant to=
> actually construct a structure of conses, don't know what to make = of
> them on encountering them in pcase patterns.
>
> That's another factual matter about dotted pairs in pcase patterns= .
> It is more a psychological matter than a computational matter, but
> that doesn't invalidate the observation.
>
> It is part of the impact of complexity of pcase.

Some people are saying that everything is clear because the Lisp
reader does this and that.=C2=A0 But when humans read code, they don't<= br> normally run the Lisp reader in their head, they use other techniques
to read and grasp what the code does.=C2=A0 If there's a need to ask wh= at
does the Lisp reader do with some syntax, that is already an obstacle
to understanding the code, even though eventually one can understand
it, whether by thinking what the reader does or by actually running
the reader and/or macro-expansion.

I'm saying it makes no sense to me to= lay the blame at the feet of the pcase syntax.

=
Elisp will happily evaluate the expression=C2=A0
(if . ( t . (nil . (t . nil))))

Would you, or anyone, say that reflects some f= law in the design of the "if" form?

Lynn



--0000000000004de1aa060bae5c6c--