From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: tomas@tuxteam.de Newsgroups: gmane.emacs.help Subject: Re: Optional Arguments Date: Mon, 7 Dec 2020 16:51:08 +0100 Message-ID: <20201207155108.GC15617@tuxteam.de> References: <20201207130630.GA10719@tuxteam.de> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="lCAWRPmW1mITcIfM" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="33225"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mutt/1.5.21 (2010-09-15) Cc: Help Gnu Emacs To: pietru@caramail.com Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Mon Dec 07 16:53:08 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 1kmIp2-0008YB-CS for geh-help-gnu-emacs@m.gmane-mx.org; Mon, 07 Dec 2020 16:53:08 +0100 Original-Received: from localhost ([::1]:58258 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kmIp0-0003XV-BY for geh-help-gnu-emacs@m.gmane-mx.org; Mon, 07 Dec 2020 10:53:06 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48538) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmInC-0003X2-08 for help-gnu-emacs@gnu.org; Mon, 07 Dec 2020 10:51:14 -0500 Original-Received: from mail.tuxteam.de ([5.199.139.25]:34993) by eggs.gnu.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.90_1) (envelope-from ) id 1kmIn8-00051o-KU for help-gnu-emacs@gnu.org; Mon, 07 Dec 2020 10:51:13 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tuxteam.de; s=mail; h=In-Reply-To:Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date; bh=JyC2KAXhLw6lLqWpifURMvHv5uA+KFGB+/76ULyvVBU=; b=s587b7EHX7OXEBpmA+lHe6qgYHcGC0knjTQXrc8Aplnz7bBDjofSndLrdw10N7+lvBjWtH7NJWUjbK7ZFJAcBKuh1j+KYET7JpDWW2uOehZTxOcvJ03LGUz6tSANJDUo6odKkzhwr2r0cA/FaFNgGZccKA4bKC68eNDfNxtZxZsfIDkpCKt9lqDgRM6YsnTIS8q5KDVGpRK2TEi+tF3TVj3tgWeN8kV+cur1As7Zba6jtjmX6GifutEuB0OlLPsrQjHIJQrn2jcF0J7t0JPP7mO1wDAKL29XR+Tlc7nKHtjvg+amwy4KJjDra43io9nHiLPKaTGvgxH6nOiwY9Tg8w==; Original-Received: from tomas by mail.tuxteam.de with local (Exim 4.80) (envelope-from ) id 1kmIn6-0004fw-BJ; Mon, 07 Dec 2020 16:51:08 +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 autolearn=ham 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:126157 Archived-At: --lCAWRPmW1mITcIfM Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Dec 07, 2020 at 04:06:13PM +0100, pietru@caramail.com wrote: [...] > How can one get computed values from a function then? Either you return it (in your case, e.g. by returning a pair) (cons ma mb) or (less preferable) by modifying variables "outside" of the function. You have to take carefully into account what kind of binding the program runs under, or to use "global" (in the sense of program scope: buffer-local variables count as global here) variables, and you have a very good Petri dish for all sort of nasty bugs ;-) Under lexical binding, this, for example, would do: (let ((ma 0) (mb 0)) =20 (defun foo () (setq ma 5) (setq mb 7)) =20 (foo) (message "ma: %d mb: %d" ma mb)) (the function `foo' "sees" the variables `ma', `mb' set up in the enclosing scope). Only recommended for small, tightly knit snippets: the (human) reader should be able to "see" that too. Cheers - t --lCAWRPmW1mITcIfM Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iEYEARECAAYFAl/OT2wACgkQBcgs9XrR2kZJUACfaqb61DEKH1jGtH4s/L3FRF30 1PEAn3dNlGdtCv44lWkLpvfi5WFo+iA0 =Zpbq -----END PGP SIGNATURE----- --lCAWRPmW1mITcIfM--