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: [External] : How to create a higher order function? Date: Fri, 24 Sep 2021 11:38:06 +0200 Message-ID: <87k0j6gvpd.fsf@zoho.eu> References: <87k0jawotx.fsf@mbork.pl> <87czoyfipj.fsf@mbork.pl> 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="3772"; 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:lqetylMthGQfZ2cKSKC3J5kyw+c= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Fri Sep 24 11:39:50 2021 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 1mThgL-0000km-30 for geh-help-gnu-emacs@m.gmane-mx.org; Fri, 24 Sep 2021 11:39:49 +0200 Original-Received: from localhost ([::1]:48204 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mThgJ-00021P-KO for geh-help-gnu-emacs@m.gmane-mx.org; Fri, 24 Sep 2021 05:39:47 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:40976) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mThew-0001zX-FU for help-gnu-emacs@gnu.org; Fri, 24 Sep 2021 05:38:22 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]:46302) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mThet-0005Os-TK for help-gnu-emacs@gnu.org; Fri, 24 Sep 2021 05:38:22 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1mThes-0009WB-GF for help-gnu-emacs@gnu.org; Fri, 24 Sep 2021 11:38:18 +0200 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.248, 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:133213 Archived-At: Drew Adams wrote: > Wrt the advantages and uses of dynamic binding in the > context of _Emacs_ - i.e., the reason why Emacs has, and > should continue to have, dynamic binding (along with > lexical binding), see RMS's arguments here: > > https://www.gnu.org/software/emacs/emacs-paper.html#SEC17 > https://www.gnu.org/software/emacs/emacs-paper.html#SEC18 If that's the "options" argument I don't see what's so dynamic/special about that idea, to me they are global variables rather like any global variable found in any programming language ... And BTW that idea is very basic so perhaps nothing to go around hitting the big drum about :) The only use-case I can see for dynamic/special variables is to set value(s) to something different in a limited scope when this can't practically be done because these values are not settable thru function parameters. E.g. what `let' does under dynamic binding (i.e., `lexical-binding' is nil). Maybe for experimental/testing purposes ... However as this is the rare case (if it happens often, the functions should be changed to include such parameters, rather - perhaps optional parameters and/or with keys) which is why think static/lexical scope should be default, `let' should _always_ be static/lexical and a/the dedicated let should always be used if and when dynamic/special scope is desired ... -- underground experts united https://dataswamp.org/~incal