From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Philip Kaludercic Newsgroups: gmane.emacs.devel Subject: Re: [External] : Re: [NonGNU ELPA] New package: Denote-Refs Date: Tue, 20 Dec 2022 16:48:23 +0000 Message-ID: <878rj2f2co.fsf@posteo.net> References: <87a63jl5i2.fsf@disroot.org> <87ili75o0p.fsf@posteo.net> <87a63jp92j.fsf@disroot.org> <878rj35hh0.fsf@posteo.net> <874jtr5cg4.fsf@posteo.net> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="29628"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Akib Azmain Turja , Emacs Developer List To: Drew Adams Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Dec 20 19:53:23 2022 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 1p7hju-0007S2-9y for ged-emacs-devel@m.gmane-mx.org; Tue, 20 Dec 2022 19:53:23 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p7fnu-0007Fo-9v; Tue, 20 Dec 2022 11:49:22 -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 1p7fns-0007Fd-I7 for emacs-devel@gnu.org; Tue, 20 Dec 2022 11:49:20 -0500 Original-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 ) id 1p7fne-0007Ud-3n for emacs-devel@gnu.org; Tue, 20 Dec 2022 11:49:20 -0500 Original-Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 5E68E240027 for ; Tue, 20 Dec 2022 17:48:20 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1671554920; bh=lEXzpyh1O1UCtI3p3mhP5+Uow7cI8yhWlqUj/Q2bYto=; h=From:To:Cc:Subject:Date:From; b=jZOyrjXIfkuPelTKGKvK5aMEE6vAsfuuniXvqgHUUe+FwsbeO24iWVclrJrGUXvCR ljo7OXop1+MB2IgHkRSQbistiy/UBJsigAZ/ElgwmRcPr1D1N5pP+eXcTziC+4A/g8 56ZwtA6KXlFII4rDI/PusSCAyfDTtNPuGiP7FseEp+0KJeSEtHgIR8MPKok/gmRh8Z gkJOOUH19aYthHtwpGfKieAyYZRJUalyJnwkToVhu/jMiBf03CpC//pzIN2ZVbskdL z60iWRN7sHFoegq6XPWmSsYYXREdxw8/GGr9Dpik1YZxU++/Da7Y3Nig/spozTymsu ZOFRit+Cul32w== Original-Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4Nc2ZW6WM8z9rxR; Tue, 20 Dec 2022 17:48:19 +0100 (CET) In-Reply-To: (Drew Adams's message of "Mon, 19 Dec 2022 21:51:25 +0000") Received-SPF: pass client-ip=185.67.36.65; envelope-from=philipk@posteo.net; 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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:301697 Archived-At: Drew Adams writes: >> > Yes, () would do as well - in fact better, since it >> > doesn't suggest any possibility that '() represents >> > something different from (). >> > >> > You don't quote nil or t, do you? Or 42 or "foo" or >> > :bar. Why quote () then? >> >> In this case it doesn't matter, because () is self-evaluating, but (foo) >> isn't, so to me it seems more consistent to treat () as a list where I >> want to make it explicit that I am inhibiting evaluation. > > Why do you want to make it explicit that you're > inhibiting evaluation? > > As you say, in the case of () "it doesn't matter". > But that's the only case we're (I'm) talking about. > > Apparently it does matter to you. It matters to > make it clear that you're inhibiting evaluation. > Why? What are you trying to say to a (human) > reader by doing that? > > Not a rhetorical question; I really wonder what > your thinking is about this. You're not the first > to do this on purpose, but I've never understood > why someone would (in Elisp). While I understand why () doesn't need to be quoted -- in the sense that the reader sees no difference between the empty list literal and the empty list notation -- I just don't like the inconsistency between the requirement to quote a non-empty list if I want to inhibit evaluation, while this is not the case for an empty list. '(1 2 3) has to be quoted, '(1 2) has to be quoted, '(1) has to be quoted, but '() suddenly doesn't? If it weren't necessary, I'd consider the `eq`ality of '(), () and nil this an implementation detail. > It's not a big deal, admittedly. But to me doing > that could suggest to a human reader that there's > some difference between evaluating '() and (). > > To me, including in terms of communicating with a > human, this case is no different from t/nil/42/:foo. > Why "inhibit evaluation" of something that evaluates > to itself, and why draw attention to the fact that > you're doing that? What's the human message there? > > I mean, if the point of using () instead of nil > is to pass a certain connation to a human reader, > then we're (both) trying to give some importance > to that human message - saying a bit more than > just that the value is nil. In that context (of > admittedly minor importance), avoiding suggesting > something untrue is relevant. Another point is that in the case of deftheme, the () might look like a empty parameter list, sort of like how (defun foo () ...) might look like. By explicitly quoting the list, we "clarify" that this is not the same kind of thing.