From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Emanuel Berg via Users list for the GNU Emacs text editor Newsgroups: gmane.emacs.help Subject: Re: let, let*, oh, why [was: Elisp - Function returning a list] Date: Fri, 18 Dec 2020 15:27:09 +0100 Message-ID: <87o8ir196q.fsf@zoho.eu> References: <87k0ti9ygy.fsf@zoho.eu> <87czza8g37.fsf@zoho.eu> <20201216115242.GB11162@tuxteam.de> <87sg85u9dq.fsf@zoho.eu> Reply-To: Emanuel Berg Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="36567"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:GNFVIoYBKxu0Ey2+5La0Ti0H4zc= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Fri Dec 18 15:28:14 2020 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 1kqGjt-0009Lg-U2 for geh-help-gnu-emacs@m.gmane-mx.org; Fri, 18 Dec 2020 15:28:13 +0100 Original-Received: from localhost ([::1]:60418 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kqGjt-0007Jv-0G for geh-help-gnu-emacs@m.gmane-mx.org; Fri, 18 Dec 2020 09:28:13 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:40084) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kqGj2-0007JO-82 for help-gnu-emacs@gnu.org; Fri, 18 Dec 2020 09:27:21 -0500 Original-Received: from ciao.gmane.io ([116.202.254.214]:45040) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kqGj0-0005Xr-G9 for help-gnu-emacs@gnu.org; Fri, 18 Dec 2020 09:27:20 -0500 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1kqGix-0008BB-Qf for help-gnu-emacs@gnu.org; Fri, 18 Dec 2020 15:27:15 +0100 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Mail-Copies-To: never Received-SPF: pass client-ip=116.202.254.214; envelope-from=geh-help-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.249, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 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:126502 Archived-At: Jean Louis wrote: >> Then use `let' and `let*'. >> >> Write code as one intuitively does, based on functions that >> do stuff and/or return stuff. >> >> When done, byte compile. >> >> Simple simple simple. Actually it is much easier to do >> right than to do wrong in this case. > > I do follow that workflow as you explained, but it took me time to > find out about it. I do not find it all simple as workflows like that > are not described anywhere. Well, it is intuitive to use let instead of creating global variables outside of the function. Isn't it? Well, to me it is. lexical-scope is intuitive in that it makes the most sense and is what you are used to from other languages, yeah, Lisp wasn't my first language. I think Basic, then C? > There are no big deals with dynamic variables as well, one > can program for years without real problem. That's right, I did so for many years without knowing about this distinction at all, what I remember the transition to lexical was done with only a few very minor changes. But then I again, to me lexical is they way I always did it and it makes the most sense, you enclose the code in blocks and levels, and what you do, you don't want anything else to interfere with it, and you don't want it to interfere with anything else outside of it... -- underground experts united http://user.it.uu.se/~embe8573 https://dataswamp.org/~incal