From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.help Subject: Re: Another question about lambdas Date: Sat, 10 Dec 2022 21:29:29 +0100 Message-ID: <87cz8rypcm.fsf@web.de> References: <87tu23kw9x.fsf@web.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="11978"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:siX3J4Di7m04YGwOroa/0UGxInA= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Sat Dec 10 21:29:55 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 1p46Tq-0002tq-H1 for geh-help-gnu-emacs@m.gmane-mx.org; Sat, 10 Dec 2022 21:29:54 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p46Tb-0000ZO-E1; Sat, 10 Dec 2022 15:29:39 -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 1p46TZ-0000Yz-TB for help-gnu-emacs@gnu.org; Sat, 10 Dec 2022 15:29:37 -0500 Original-Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p46TY-0000KS-AP for help-gnu-emacs@gnu.org; Sat, 10 Dec 2022 15:29:37 -0500 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1p46TW-0002YR-2h for help-gnu-emacs@gnu.org; Sat, 10 Dec 2022 21:29:34 +0100 X-Injected-Via-Gmane: http://gmane.org/ 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: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, 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.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-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.help:141601 Archived-At: writes: > On Sat, Dec 10, 2022 at 06:23:38PM +0100, Michael Heerdegen wrote: > > Hello, > > > > My new question for today is: > > > > What's the result of the following expression - and why? Or maybe it is > > invalid? > > > > #+begin_src emacs-lisp > > (let* ((x 'l) > > (f (lambda () x)) > > (x 'd)) > > (funcall f)) > > #+end_src > > I had to look that up in the elisp manual, and I must admit > I didn't find it very clear, but ultimately it says what will > happen. The shadowing is only one aspect of the exercise. The question of the return value is still not trivial. > Scheme docs are typically clearer, by explaining (let* ...) in > terms of nested (let ...). Perhaps that should go into the > Elisp manual, what do people think? +1. I've skimmed over (info "(elisp) Local Variables"). Saying that `let*' is equivalent to nested `let's would be helpful to understand the matter. OTOH, shadowing is explained quite well. Another thing that should be changed on that page is that it (still) says that "The default scoping rule in Emacs Lisp is called “dynamic scoping”" - that's not really true any more since *scratch* defaults to lexical scoping. Michael.