From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Newsgroups: gmane.emacs.help Subject: Re: [External] : `let' vs `let*' (was: Re: How do I pass a variable defined in a wrapping let, to a lambda?) Date: Tue, 15 Mar 2022 16:41:24 +0100 Message-ID: References: <87k0d03vaw.fsf@ericabrahamsen.net> <8735joc5of.fsf@web.de> <87r177rjzn.fsf@zoho.eu> <874k40iqmd.fsf_-_@zoho.eu> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="tRY7C0tizrzbRN23" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="39973"; mail-complaints-to="usenet@ciao.gmane.io" To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Tue Mar 15 16:47:51 2022 Return-path: Envelope-to: geh-help-gnu-emacs@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 1nU9Op-000ADx-2W for geh-help-gnu-emacs@m.gmane-mx.org; Tue, 15 Mar 2022 16:47:51 +0100 Original-Received: from localhost ([::1]:34326 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nU9On-0001sM-O4 for geh-help-gnu-emacs@m.gmane-mx.org; Tue, 15 Mar 2022 11:47:49 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:43208) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nU9Ie-0002FQ-4o for help-gnu-emacs@gnu.org; Tue, 15 Mar 2022 11:41:28 -0400 Original-Received: from mail.tuxteam.de ([5.199.139.25]:36122) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nU9Ic-0002pK-8A for help-gnu-emacs@gnu.org; Tue, 15 Mar 2022 11:41:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tuxteam.de; s=mail; h=From:In-Reply-To:Content-Type:MIME-Version:References:Message-ID: Subject:To:Date:Sender:Reply-To:Cc:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=CWU/6AUpheRCtiZ91vLdKh2zTstj/vfMnvnZ9MqFUKE=; b=t3oNJ+57r6vF72CSLtTmZbpMZs JNtLMbxQccbQZrMRmWpUmfcPpfxesqIcxQPJHztFeoMh4rg+qOENuaVYnhMzEIbLXz/yPBEmz69Gk M7nrzjs5DR132Q37/Xc94eLX6YOc69P9fb2Vje1YUpVE19ytlieF2NbCXbahXHSWaPUImo+R9mFrh 5kRIpwiZ2sXAL6fVxLfMzHCKNYud5m3kTGKNxXBStPMBGCqOzJFvuJnsMX+6NOps12lnpZHfyQKYq eJIXJTP9eUX/4s24+B4uCGTTlf360V5jOy0ePLHPg8+lifpOL7wyB50KVSje6LNZBV3RZ+n/5bv+r guqmszJw==; Original-Received: from tomas by mail.tuxteam.de with local (Exim 4.94.2) (envelope-from ) id 1nU9Ia-0002vM-8r for help-gnu-emacs@gnu.org; Tue, 15 Mar 2022 16:41:24 +0100 Content-Disposition: inline In-Reply-To: Received-SPF: pass client-ip=5.199.139.25; envelope-from=tomas@tuxteam.de; helo=mail.tuxteam.de 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, 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: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:136588 Archived-At: --tRY7C0tizrzbRN23 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Mar 15, 2022 at 03:26:17PM +0000, Drew Adams wrote: > > would it be a good idea to just have `let' and > > that would then be the same as today's `let*'? >=20 > No. Having both makes it clear(er) to _human_ > readers when some of the bound variables might > depend on others. Besides, sometimes you actually *want* that independence (aka frozen environment). Here's a simplistic example (setq a 42) (setq b 43) (let ((a b) (b a)) (list a b)) =3D> (43 42) Of course, a real-life example might be more complex. And one could ask oneself whether it's wise to shadow variables from the outer environment (the only case which will show differences between let and let*, AFAIK). Cheers --=20 t --tRY7C0tizrzbRN23 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iF0EABECAB0WIQRp53liolZD6iXhAoIFyCz1etHaRgUCYjCzpAAKCRAFyCz1etHa RiGFAJ4t4gZSXDwBVKMHm9WMM71f81gmcACeI6zTRlO6s4w5Z8bi3PLdG3cV+V4= =xPK/ -----END PGP SIGNATURE----- --tRY7C0tizrzbRN23--