From: Michael Heerdegen <michael_heerdegen@web.de>
To: help-gnu-emacs@gnu.org
Subject: Re: Cycle Org Shift Select
Date: Tue, 10 Nov 2020 12:10:53 +0100 [thread overview]
Message-ID: <87h7pxeabm.fsf@web.de> (raw)
In-Reply-To: trinity-ab01a762-af17-4aa3-a491-0a47d026977c-1605003441957@3c-app-mailcom-bs07
Christopher Dimech <dimech@gmx.com> writes:
> Many thanks Tomas, have gone though the Elisp Manual yesterday
> and I am getting to understand this list Ouroboros thing. :)
If you want a simple way to think about it starting from a syntax point
of view:
A very simple way to think about the dotted syntax is to start from
regular lists. You can write
(elt1 elt2 . rest)
to describe a list of the elements elt1 elt2 (any positive number of
starting elements will do) with the elements in the list `rest'
appended. For example try to eval
'(x y . ())
or
'(x y . (z))
(You need the quote "'" because we don't want to evaluate the lists as
an expression.)
Of course the dot syntax is ambiguous, e.g.
'(x y z)
'(x . (y z))
'(x . (y . (z)))
'(x . (y . (z . ())))
all describe equal three element lists containing the symbols x, y and z.
Then you need to know that the "rest" can be actually anything. If the
`rest' doesn't describe a regular list, you get a "dotted" list (it will
be printed using the dot syntax). In the simplest case
(x . y)
you have a pair, a `cons' cell which is the building block lists are
constructed from in Lisp. A cons with a list cdr is also a list.
And when `rest' refers to the list itself (possible using the # reader
syntax):
'#1=(nil t always . #1#)
you get a circular list.
HTH,
Michael.
next prev parent reply other threads:[~2020-11-10 11:10 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-06 15:23 Cycle Org Shift Select Christopher Dimech
2020-11-09 19:12 ` Noam Postavsky
2020-11-09 20:13 ` Michael Heerdegen
2020-11-09 20:26 ` Noam Postavsky
2020-11-09 20:31 ` Michael Heerdegen
2020-11-09 20:37 ` Noam Postavsky
2020-11-09 21:08 ` Michael Heerdegen
2020-11-09 21:19 ` Noam Postavsky
2020-11-09 20:40 ` Christopher Dimech
2020-11-09 20:42 ` Noam Postavsky
2020-11-09 20:52 ` Christopher Dimech
2020-11-09 20:53 ` Noam Postavsky
2020-11-09 21:20 ` Michael Heerdegen
2020-11-09 21:25 ` Noam Postavsky
2020-11-09 21:36 ` Michael Heerdegen
2020-11-09 21:45 ` Christopher Dimech
2020-11-09 21:49 ` Noam Postavsky
2020-11-09 21:50 ` Michael Heerdegen
2020-11-09 21:59 ` Christopher Dimech
2020-11-09 22:49 ` Christopher Dimech
2020-11-10 8:08 ` tomas
2020-11-10 10:17 ` Christopher Dimech
2020-11-10 11:10 ` Michael Heerdegen [this message]
2020-11-10 16:37 ` Drew Adams
2020-11-11 17:09 ` Drew Adams
2020-11-09 20:10 ` Michael Heerdegen
2020-11-09 20:35 ` Christopher Dimech
2020-11-09 21:18 ` Michael Heerdegen
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=87h7pxeabm.fsf@web.de \
--to=michael_heerdegen@web.de \
--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).