From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Newsgroups: gmane.emacs.help Subject: Re: Appending lists Date: Wed, 16 Jun 2021 09:28:19 +0200 Message-ID: <20210616072819.GB17919@tuxteam.de> References: <4tl1yvylvg1fxx5eefjs9mnk.1623688568572@email.android.com> <87o8c8l32h.fsf@posteo.net> <87zgvs2bup.fsf@zoho.eu> <87y2bby1kr.fsf@zoho.eu> <20210615091834.GB24886@tuxteam.de> <87im2ewr3k.fsf@zoho.eu> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="MW5yreqqjyrRcusr" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="749"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mutt/1.5.21 (2010-09-15) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Wed Jun 16 09:28:59 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 1ltPys-000AX4-MQ for geh-help-gnu-emacs@m.gmane-mx.org; Wed, 16 Jun 2021 09:28:58 +0200 Original-Received: from localhost ([::1]:47172 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ltPyq-00076W-KQ for geh-help-gnu-emacs@m.gmane-mx.org; Wed, 16 Jun 2021 03:28:56 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:46442) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ltPyL-000769-Qy for help-gnu-emacs@gnu.org; Wed, 16 Jun 2021 03:28:25 -0400 Original-Received: from mail.tuxteam.de ([5.199.139.25]:60704) by eggs.gnu.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.90_1) (envelope-from ) id 1ltPyI-0006BL-3E for help-gnu-emacs@gnu.org; Wed, 16 Jun 2021 03:28:25 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tuxteam.de; s=mail; h=From:In-Reply-To:Content-Type:MIME-Version:References:Message-ID:Subject:To:Date; bh=9JWwI3tw/7m0gzg9+mZdQFIwGcD/O5J+9cvPtsGCVt8=; b=unYJdGeX0U8nEnzQP11gMQq4J8U47oj69HZAEmkkEJPS+5XmQpw1PfzIcdA3SU93RkivDX5fa07vWuoW0lvKCw498ulZeKFcstVJK1JnjrZY+qxEGgG9UWQnaIQyexS0Si1J6yYN3CSoZP2OgIV/ygFDx0uAImN9dythtKc/c8ktDjQGXwN3E+0om9svndCBU51JV1+YPkAG4oFlU41XNEl9UQvaMj0xcKQsbUmtQWGJOWjWGMIGPkenHH0hvxu+PTbaPXygTxCEWjNHo3uOg85oYiwuF0bUECghHQ7PnJmUCZbj6+Qp53Uetn1XIPi7ir0z6a7Vr2m+fcAJraW9yg==; Original-Received: from tomas by mail.tuxteam.de with local (Exim 4.80) (envelope-from ) id 1ltPyF-00054V-FK for help-gnu-emacs@gnu.org; Wed, 16 Jun 2021 09:28:19 +0200 Content-Disposition: inline In-Reply-To: <87im2ewr3k.fsf@zoho.eu> 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:130891 Archived-At: --MW5yreqqjyrRcusr Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Jun 16, 2021 at 03:11:43AM +0200, Emanuel Berg via Users list for t= he GNU Emacs text editor wrote: > tomas wrote: >=20 > > (setq thing (copy-sequence '(one two three four five six))) > > (setq thang (cddr thing)) > > > > thang =3D> (three four five six) > > > > (nreverse thing) =3D> (six five four three two one) > > > > thing =3D> (one) > > > > thang =3D> (three two one) > > ; now this is what I was after. Who the heck "changed my > > ; variable!?" Who is General Failure and why is he reading > > ; my disk? >=20 > Well, let's see, `nreverse' has updated the data without > setting the variables to whatever desired values they should > take It can't. It's a function. Doing (foo x y) will *never* change "the variable x" -- unless foo is a macro/special form. > so what is left is the variables reference to the first > data item (the car), after that tho 1 doesn't have a cdr > anymore and 3 has '(2 1), not '(4 5 6). You can put it this way... if you want to prevent yourself =66rom wrapping your head around it. You should draw your box-and-pointer diagrams [1]. Then, you'd get that talking about "the 3" is dangerous talk :) > ? What happens is that thing holds a reference to the cons cell which makes up the original list (one two...). Once nreverse runs over it, it just flips the pointers to point the other way around. Now thing /still/ holds a reference to that cons cell, but now it happens to be at the tail of the (modified) list! Since it's a tail (now), it only "sees" one element. What it doesn't see is that some other cons cell (one whose car is "two" or thereabout) is pointing at it. No, I won't draw the box-and-pointer diagrams for you. It's something that, like riding a bicycle, is fun when you do it yourself :-) Cheers [1] https://en.wikipedia.org/wiki/Lisp_(programming_language)#Conses_and_li= sts - t --MW5yreqqjyrRcusr Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iEYEARECAAYFAmDJqBMACgkQBcgs9XrR2kYcYQCffYqfhNVclqymgrmqzuZ7Nsz6 T2wAnR9O2UB2+/6aC2YL9FC3CFbp2mER =OROI -----END PGP SIGNATURE----- --MW5yreqqjyrRcusr--