Refer to "proper lists" instead of "true lists"
* doc/lispref/lists.texi (Cons Cells, Building Lists): * doc/lispref/sequences.texi (Vector Functions): Use the more popular term "proper", rather than "true", to qualify nil-terminated lists. For discussion, see the following emacs-devel subthreads: https://lists.gnu.org/archive/html/emacs-devel/2018-06/msg00112.html https://lists.gnu.org/archive/html/emacs-devel/2018-06/msg00138.html
This commit is contained in:
parent
35e0305dc2
commit
db3874b161
2 changed files with 13 additions and 10 deletions
|
@ -50,16 +50,19 @@ convention; at the level of cons cells, the @sc{car} and @sc{cdr}
|
|||
slots have similar properties). Hence, the @sc{cdr} slot of each cons
|
||||
cell in a list refers to the following cons cell.
|
||||
|
||||
@cindex proper list
|
||||
@cindex true list
|
||||
Also by convention, the @sc{cdr} of the last cons cell in a list is
|
||||
@code{nil}. We call such a @code{nil}-terminated structure a
|
||||
@dfn{true list}. In Emacs Lisp, the symbol @code{nil} is both a
|
||||
symbol and a list with no elements. For convenience, the symbol
|
||||
@code{nil} is considered to have @code{nil} as its @sc{cdr} (and also
|
||||
as its @sc{car}).
|
||||
@dfn{proper list}@footnote{It is sometimes also referred to as a
|
||||
@dfn{true list}, but we generally do not use this terminology in this
|
||||
manual.}. In Emacs Lisp, the symbol @code{nil} is both a symbol and a
|
||||
list with no elements. For convenience, the symbol @code{nil} is
|
||||
considered to have @code{nil} as its @sc{cdr} (and also as its
|
||||
@sc{car}).
|
||||
|
||||
Hence, the @sc{cdr} of a true list is always a true list. The
|
||||
@sc{cdr} of a nonempty true list is a true list containing all the
|
||||
Hence, the @sc{cdr} of a proper list is always a proper list. The
|
||||
@sc{cdr} of a nonempty proper list is a proper list containing all the
|
||||
elements except the first.
|
||||
|
||||
@cindex dotted list
|
||||
|
@ -71,10 +74,10 @@ Pair Notation}). There is one other possibility: some cons cell's
|
|||
@sc{cdr} could point to one of the previous cons cells in the list.
|
||||
We call that structure a @dfn{circular list}.
|
||||
|
||||
For some purposes, it does not matter whether a list is true,
|
||||
For some purposes, it does not matter whether a list is proper,
|
||||
circular or dotted. If a program doesn't look far enough down the
|
||||
list to see the @sc{cdr} of the final cons cell, it won't care.
|
||||
However, some functions that operate on lists demand true lists and
|
||||
However, some functions that operate on lists demand proper lists and
|
||||
signal errors if given a dotted list. Most functions that try to find
|
||||
the end of a list enter infinite loops if given a circular list.
|
||||
|
||||
|
@ -522,7 +525,7 @@ object. The final argument is not copied or converted; it becomes the
|
|||
is itself a list, then its elements become in effect elements of the
|
||||
result list. If the final element is not a list, the result is a
|
||||
dotted list since its final @sc{cdr} is not @code{nil} as required
|
||||
in a true list.
|
||||
in a proper list (@pxref{Cons Cells}).
|
||||
@end defun
|
||||
|
||||
Here is an example of using @code{append}:
|
||||
|
|
|
@ -1355,7 +1355,7 @@ each initialized to @var{object}.
|
|||
@defun vconcat &rest sequences
|
||||
@cindex copying vectors
|
||||
This function returns a new vector containing all the elements of
|
||||
@var{sequences}. The arguments @var{sequences} may be true lists,
|
||||
@var{sequences}. The arguments @var{sequences} may be proper lists,
|
||||
vectors, strings or bool-vectors. If no @var{sequences} are given,
|
||||
the empty vector is returned.
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue