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: Appending lists Date: Wed, 16 Jun 2021 11:32:02 +0200 Message-ID: <20210616093202.GC22979@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> <20210616072819.GB17919@tuxteam.de> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="ctP54qlpMx3WjD+/" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="15587"; 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 11:33:08 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 1ltRv1-0003pv-OU for geh-help-gnu-emacs@m.gmane-mx.org; Wed, 16 Jun 2021 11:33:07 +0200 Original-Received: from localhost ([::1]:57622 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ltRv0-00015f-IZ for geh-help-gnu-emacs@m.gmane-mx.org; Wed, 16 Jun 2021 05:33:06 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44638) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ltRuA-00012k-7U for help-gnu-emacs@gnu.org; Wed, 16 Jun 2021 05:32:14 -0400 Original-Received: from mail.tuxteam.de ([5.199.139.25]:60964) by eggs.gnu.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.90_1) (envelope-from ) id 1ltRu7-00079V-Ax for help-gnu-emacs@gnu.org; Wed, 16 Jun 2021 05:32:13 -0400 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:To:From:Date; bh=lDT/+b/PE0E16BUQhjuwYa1a6QsOnQo9oFqk9zBf/Pg=; b=BqqF//8wlrJKHXX4eXDpLFM/PGSufh+lnt6Zm33T6g2GcnjF28BZV8x5lUaxHqocZ/V8h7efZtJM55X9C0cQ3D/g3VbyVvGX1rcQGi7GV3sRF928Qay2VeZ2Jj27Jsg8Dt7/uFsarykBXj3CSIXEpVWxizD8JwH3LcdCZxDrTSmF01ifHNM3tuPfP/xCkKiIZ3M57rc0wcWT1I79AnYFejZ9Ij5yKIivwKuH43QpBzCj9lvnTbwD9U59u8fOjxfYdtclPTI9IGlyEStmLmiEag/pWSVycY75fSrh7nzvUyAWWGlSRi/OXDdVKi87FFwJULPDD4osdhYvqrvK7gix9w==; Original-Received: from tomas by mail.tuxteam.de with local (Exim 4.80) (envelope-from ) id 1ltRty-0006Yt-Ut for help-gnu-emacs@gnu.org; Wed, 16 Jun 2021 11:32:02 +0200 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:130894 Archived-At: --ctP54qlpMx3WjD+/ Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Jun 16, 2021 at 12:13:21PM +0300, Jean Louis wrote: > * tomas@tuxteam.de [2021-06-16 10:29]: > > On Wed, Jun 16, 2021 at 03:11:43AM +0200, Emanuel Berg via Users list f= or the 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 > >=20 > > It can't. It's a function. > >=20 > > Doing (foo x y) will *never* change "the variable x" -- unless > > foo is a macro/special form. >=20 > (setq list-1 '(1 2 3)) > (setq list-2 '(A B)) > (nconc list-1 list-2) =E2=87=92 (1 2 3 A B) > list-1 =E2=87=92 (1 2 3 A B) > nconc is a built-in function in =E2=80=98C source code=E2=80=99. >=20 > So it obviously changes the variable `list-1' from (1 2 3) to (1 2 3 A > B) -- how do you explain that? No. A thousand times no. The variable list-1 contained a ref to some cons cell (behind the scenes it's just a (perhaps tagged) pointer). **THIS VARIABLE HASN'T CHANGED** after you did that nconc. The variable list-1 still contains a ref to exactly the same cons cell. What happens is that you changed the list somewhere downstream. > So far I know from Common Lisp those functions starting with "n" are > common with side effects. Judging by what you write, I have the impression that you haven't quite understood Common Lisp (this part works exactly the same there). But I might be wrong and this a huge misunderstanding. Cheers - t --ctP54qlpMx3WjD+/ Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iEYEARECAAYFAmDJxRIACgkQBcgs9XrR2kbmOQCeKN/EmmQ4355lLhJN/eNUsPn+ zZIAn29w2ZieSLGY4/iFjfy321wn818U =evz4 -----END PGP SIGNATURE----- --ctP54qlpMx3WjD+/--