From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Bruno =?utf-8?Q?F=C3=A9lix?= Rezende Ribeiro Newsgroups: gmane.emacs.devel Subject: Re: defvar without value Date: Fri, 10 Apr 2020 12:20:46 -0300 Message-ID: <877dyngyep.fsf@oitofelix.com> References: <87k1302htp.fsf@web.de> <878sjebzaj.fsf@web.de> <875ze94e9c.fsf@web.de> <87blo0mdwi.fsf@ebih.ebihd> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="111277"; mail-complaints-to="usenet@ciao.gmane.io" To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Apr 10 17:22:26 2020 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 1jMvU9-000Squ-Jf for ged-emacs-devel@m.gmane-mx.org; Fri, 10 Apr 2020 17:22:25 +0200 Original-Received: from localhost ([::1]:35810 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jMvU8-0004hT-LW for ged-emacs-devel@m.gmane-mx.org; Fri, 10 Apr 2020 11:22:24 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:57422) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jMvSe-0003Pz-0Y for emacs-devel@gnu.org; Fri, 10 Apr 2020 11:20:56 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:52164) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1jMvSd-0002fV-Fd for emacs-devel@gnu.org; Fri, 10 Apr 2020 11:20:51 -0400 Original-Received: from [189.15.143.211] (port=56110 helo=felix-laptop) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1jMvSb-0003iu-M1 for emacs-devel@gnu.org; Fri, 10 Apr 2020 11:20:50 -0400 X-Face: %,T7Hsg=SK$Zh)wiU4Qdv9-fZ26Pf5*+}Ld,{LeV'Cq-1?=kA"hc,'i""S85]g; _W+{nZfx 2GnAMS1K\E_E&:{h[wQd+Tqj5#PtH:W&8^crA0>i?nmD7hOL$K".`@An_8.7gaObQLlMy0\%%I0Jp. Lue$J0B Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACcElEQVRYw93YzXHCQAwF4G0h Fw4caYEW0oJbSAtuwa1AldGg8PKQtP+GMHkHxkDG/qLVrtek6x65UCZPleYdH485HA4zrHHQ4R5F cPSTl4L0qigJDoxpoFRpUmMGKzR1sbpB3DTLsnzd83nL+XyeNHWDoBHEeg9YQlQWCtZrSmOa1YVN ktDkiz0FwmDJVbd7CizTUhcXLByDINXIiGyUQqnkL8Nm8iCY5CD1lkf+9UYQFykEhb7UqEGFeLwK Q6YgnXTovEtDZkHGZFpbR21nkLlhlUFqWig63XYGyevxeGSQXFjXG4lclSnyyekW/Ur+jFfzWRD6 31RoeQxAnxQB6cErQBKsywDpW6Yo93UgFAMg3DqgMaCqaRzEc4pBPh50fdxk9oF4zvPCCBDml6fo sIagnClVNTmQn/BAmOXxn4LMXQan45vrJCg07QPC/JI8BeT3BjidLNkGpOu1anSNbgd5U6qWx4Ak DOL1RotkTLMV8ouEWYc8yNzezcBNVchv5MIK8VKEHjKrM0D+malvyFoqxG2kLBHIMCmo3EAjFfLl MSAeNSzZoeZZIH/SHAim3I1MMwvC7syAeBuEyV++s3aA2suDHkI7nyi6UUTCHwLGKxSCsFjzzpV3 ZNUihc+s9QqF7YwtEW88zAMQt5Ec7AkKx4uvWjChwaujFoAay+PLUHhQ5LQXKeVu7y2a0GRY/LZq +gG1jBROap4Sy0XyX1VNyf8Ekav8lom5dqFyocn0k62QOenWkBC05uNNDyCv2fpj2mUtxve7vGZB 21CqI1X1BaBhTfiz1QDL9tAMaN70C8L8ei/Q32rYlN6hgdj0DS+u5+J4AqFYAAAAAElFTkSuQmCC X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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" Xref: news.gmane.io gmane.emacs.devel:246766 Archived-At: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi Emanuel, Emanuel Berg via "Emacs development discussions." writes: > The supposedly parallel version isn't needed in my experience if there > is `let*' [...] Maybe `let' will truly be parallel one day [...] That=E2=80=99s not the only use of =E2=80=98let=E2=80=99, because it=E2=80= =99s not a weaker form of =E2=80=98let*=E2=80=99 as one might first think. Both are fundamentally di= fferent in their operation and =E2=80=98let=E2=80=99 is indeed parallel in some strict= theoretical sense, in the same way =E2=80=98let*=E2=80=99 is sequential in the same sen= se. Both forms coincide in effect only in the trivial case: when there is no reference to (textually) earlier variables being bound in the subsequent forms being evaluated to obtain the values to be bound to the later ones. For instance consider the difference between #+BEGIN_SRC elisp (let ((x 0)) (let ((x (1- x)) (y (1+ x))) (cons x y))) #+END_SRC and=20 #+BEGIN_SRC elisp (let ((x 0)) (let* ((x (1- x)) (y (1+ x))) (cons x y))) #+END_SRC The former evaluates to ~(-1 . 1)~ while the latter to ~(-1 . 0)~. Both are valid expressions with sensible behavior and are not interchangeable. The answer to which one to use does *not* follow from the criterion: =E2=80=9Care the variables to be bound interdependent?=E2=80= =9D, since in both cases they are (and the behavior is different). The real question to answer is: =E2=80=9Cshould they be bound in sequence or in parallel?=E2= =80=9D =2D-=20 Bruno F=C3=A9lix Rezende Ribeiro (oitofelix) [0x28D618AF] --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEfLEgjHM2VrdZYiUAJ7nG/SjWGK8FAl6Qjs4ACgkQJ7nG/SjW GK97kgf+OqtrVwnUkC/dNpZiWQABS91nSGAikL7uz3s5DkgsHZZmd20NuTUH/om8 kzdYPGi8V9Ad5yAHYuaJ2TmuT9FlzZERDzjiXmciH+Iytez2/uqOThPcVcAINuUW xtEvVBCM8seoR2vWg31i5z2abrPNHLswiNu2Wqeb+jRZxM9a7uz1qQ216hNiZd0G 1orYYSypB08MW65z9KnnInFW0iw1SP7dvCzJmA6b3XOiFeTk58yLTxsLaLdkcTn9 DyGPvB+SS0s4NVLrMPAsz/VS1sl2BMJI5hrKIYaWI7+mbUuoGXrv2umEkXDq1cn3 pOkWDdMtbT4pWEODH0YxqxCqfPuqtQ== =Xv18 -----END PGP SIGNATURE----- --=-=-=--