From: Michael Heerdegen <michael_heerdegen@web.de>
To: Jean-Christophe Helary <brandelune@gmail.com>
Cc: help-gnu-emacs <help-gnu-emacs@gnu.org>
Subject: Re: using setq to create lists based on other lists...
Date: Sun, 02 Dec 2018 15:40:01 +0100 [thread overview]
Message-ID: <87a7lo3sce.fsf@web.de> (raw)
In-Reply-To: <6512D5B6-B3BE-4B02-81E0-B73F4BED9FCE@gmail.com> (Jean-Christophe Helary's message of "Sun, 2 Dec 2018 22:28:39 +0900")
Jean-Christophe Helary <brandelune@gmail.com> writes:
> > I don't think setq is behaving any different with lists than with other
> > Lisp objects. Lists are defined this way in Lisp, cf. (info "(elisp)
> > Cons Cell Type"):
>
> Yes, but a list does not generally evaluate to a pointer to the first
> cell of its cons.
When one is saying that lists are referenced by pointers this is mainly
to help people coming from other programming languages to understand
that multiple variables can be bound to the same object. It's probably
better to say that multiple variables can be bound to the same value (or
object).
Apart from that, note that a list is identical to its first cons.
> Which is the case when setq is used. Which is the reason why the
> Introduction insists on that aspect of setq, because before that, all
> the setq examples assigned "straight" values to variables.
There is nothing special with setq here, really. Whenever you refer to
the same Lisp object in different places in your code in whatever way,
you see the same object modified in all places at the same time when you
modify it. Variables bound to the same value (via setq or in any other
way) is only one case. In Lisp it's always like that, as long as you
look at the same value.
It is also not special to lists: you get the same for all objects that
can be modified, like any conses and trees, strings, arrays, keymaps
(which are actually lists), defstructs, eieio objects, vectors,
bool-vectors, ...
Michael.
next prev parent reply other threads:[~2018-12-02 14:40 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <mailman.5010.1543748027.1284.help-gnu-emacs@gnu.org>
2018-12-02 11:21 ` using setq to create lists based on other lists Barry Margolin
2018-12-02 11:51 ` Stephen Berman
2018-12-02 12:22 ` Jean-Christophe Helary
2018-12-02 13:08 ` Stephen Berman
2018-12-02 13:28 ` Jean-Christophe Helary
2018-12-02 14:40 ` Michael Heerdegen [this message]
2018-12-02 15:34 ` Jean-Christophe Helary
2018-12-02 15:44 ` Michael Heerdegen
2018-12-02 15:57 ` Jean-Christophe Helary
2018-12-02 15:00 ` Stephen Berman
2018-12-02 15:30 ` Jean-Christophe Helary
[not found] ` <mailman.5026.1543764670.1284.help-gnu-emacs@gnu.org>
2018-12-04 9:00 ` Barry Margolin
2018-12-02 12:03 ` Jean-Christophe Helary
[not found] <mailman.5042.1543777897.1284.help-gnu-emacs@gnu.org>
2018-12-04 9:04 ` Barry Margolin
[not found] ` <(message>
[not found] ` <from>
[not found] ` <Barry>
[not found] ` <Margolin>
[not found] ` <on>
[not found] ` <Tue>
[not found] ` <04>
[not found] ` <Dec>
[not found] ` <2018>
[not found] ` <04:04:52>
2018-12-04 13:56 ` Stefan Monnier
2018-12-05 1:07 ` Robert Thorpe
2018-12-05 2:32 ` Drew Adams
2018-12-05 6:45 ` Jean-Christophe Helary
2018-12-05 8:00 ` Marcin Borkowski
2018-12-05 8:11 ` Jean-Christophe Helary
2018-12-05 14:57 ` Drew Adams
[not found] ` <mailman.5218.1544021892.1284.help-gnu-emacs@gnu.org>
2018-12-05 16:59 ` Barry Margolin
[not found] ` <mailman.5186.1543978155.1284.help-gnu-emacs@gnu.org>
2018-12-05 16:50 ` Barry Margolin
[not found] ` <mailman.5145.1543931778.1284.help-gnu-emacs@gnu.org>
2018-12-05 16:47 ` Barry Margolin
2018-12-02 10:53 Jean-Christophe Helary
2018-12-02 15:07 ` Stefan Monnier
2018-12-02 15:41 ` Jean-Christophe Helary
2018-12-02 16:05 ` Stefan Monnier
2018-12-02 16:23 ` Jean-Christophe Helary
2018-12-02 17:02 ` Stefan Monnier
2018-12-02 17:21 ` Jean-Christophe Helary
2018-12-02 19:11 ` Robert Thorpe
2018-12-02 23:44 ` Jean-Christophe Helary
[not found] ` <mailman.5028.1543765273.1284.help-gnu-emacs@gnu.org>
2018-12-03 13:43 ` Rusi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87a7lo3sce.fsf@web.de \
--to=michael_heerdegen@web.de \
--cc=brandelune@gmail.com \
--cc=help-gnu-emacs@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).