From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.help Subject: Re: binding question Date: Sun, 06 Oct 2013 14:39:09 +0200 Message-ID: <87k3hq1slu.fsf@web.de> References: <87li267ndp.fsf@ericabrahamsen.net> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1381063186 19668 80.91.229.3 (6 Oct 2013 12:39:46 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 6 Oct 2013 12:39:46 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sun Oct 06 14:39:49 2013 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 1VSnci-000196-Vl for geh-help-gnu-emacs@m.gmane.org; Sun, 06 Oct 2013 14:39:49 +0200 Original-Received: from localhost ([::1]:55033 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VSnci-0005du-Ik for geh-help-gnu-emacs@m.gmane.org; Sun, 06 Oct 2013 08:39:48 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:47231) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VSncR-0005dY-DZ for help-gnu-emacs@gnu.org; Sun, 06 Oct 2013 08:39:39 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VSncK-0005c1-2j for help-gnu-emacs@gnu.org; Sun, 06 Oct 2013 08:39:31 -0400 Original-Received: from plane.gmane.org ([80.91.229.3]:35504) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VSncJ-0005bo-Se for help-gnu-emacs@gnu.org; Sun, 06 Oct 2013 08:39:24 -0400 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1VSncI-0000u7-7l for help-gnu-emacs@gnu.org; Sun, 06 Oct 2013 14:39:22 +0200 Original-Received: from ip-90-187-145-156.web.vodafone.de ([90.187.145.156]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 06 Oct 2013 14:39:22 +0200 Original-Received: from michael_heerdegen by ip-90-187-145-156.web.vodafone.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 06 Oct 2013 14:39:22 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 33 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: ip-90-187-145-156.web.vodafone.de User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) Cancel-Lock: sha1:hE4HQGdI13PBdaog/8hbwcwGito= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 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-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:93869 Archived-At: Hi Eric, in LISP, lists (cons cells) are passed by reference. Thus, different bindings can refer to the same list object, like here the variables a and b: (setq a '(1 2)) (setq b a) ; copies the reference to the list, not the list itself (setcar a 'foo) b ==> (foo 2) > (defun main-entry-function () > ;; obviously this doesn't work as defvars are always special > (let ((list-template list-template)) This creates a new local binding, but it references the same list object in memory. If you change the structure of the referenced object, the change is "visible" for all variables which are bound to this object. You can create a real copy of the object with `copy-tree'. Or don't destructively alter the list, but process the value with non-destructive functions instead. I'm sure there is a good explanation somewhere in the manual. Regards, Michael.