From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Barry Margolin Newsgroups: gmane.emacs.help Subject: Re: Defining functions within functions? Date: Tue, 24 May 2016 12:15:18 -0400 Organization: A noiseless patient Spider Message-ID: References: <87k2ilbblk.fsf@mbork.pl> <864m9oj5cq.fsf@student.uu.se> <864m9nihrn.fsf@student.uu.se> NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1464883824 23007 80.91.229.3 (2 Jun 2016 16:10:24 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 2 Jun 2016 16:10:24 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Thu Jun 02 18:10:23 2016 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1b8VCH-0008Fs-Mk for geh-help-gnu-emacs@m.gmane.org; Thu, 02 Jun 2016 18:10:13 +0200 Original-Received: from localhost ([::1]:48257 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b8VCG-0004js-RV for geh-help-gnu-emacs@m.gmane.org; Thu, 02 Jun 2016 12:10:12 -0400 Original-Path: usenet.stanford.edu!goblin1!goblin.stu.neva.ru!eternal-september.org!feeder.eternal-september.org!mx02.eternal-september.org!barmar.motzarella.org!.POSTED!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 41 Injection-Info: barmar.motzarella.org; posting-host="2be9e9f5dd9af768b8861af71b85fc28"; logging-data="30455"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX186nuuOSFNphX4MzkJ62dok" User-Agent: MT-NewsWatcher/3.5.3b3 (Intel Mac OS X) Cancel-Lock: sha1:Vq/nWvHohYtlGDNOI6+zX4fLuLk= Original-Xref: usenet.stanford.edu gnu.emacs.help:217850 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.21 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.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.org gmane.emacs.help:110243 Archived-At: In article <864m9nihrn.fsf@student.uu.se>, Emanuel Berg wrote: > Barry Margolin writes: > > > If you have a local function, it can access > > variables in the calling function directly. > > If you move it out to a top-level function, > > you have to pass those variables > > as arguments. > > Right, I didn't think of that but actually it > is even more confusing. > > It is more clear to call the function at top > level, and pass it all it needs to do its job. > > > And if the function being called needs to > > reassign the variable, you need to do that in > > the caller if you use a top-level function. > > "reassign the variable"? (defun foo-local (a) (flet ((bar () (incf a))) (bar)) a) vs. (defun foo-global (a) (setq a (bar a)) a) (defun bar (a) (+1 a)) -- Barry Margolin, barmar@alum.mit.edu Arlington, MA *** PLEASE post questions in newsgroups, not directly to me ***