@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
-@c 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../../info/lists
@node Lists, Sequences Arrays Vectors, Strings and Characters, Top
@defun car cons-cell
This function returns the value referred to by the first slot of the
-cons cell @var{cons-cell}. Expressed another way, this function
-returns the @sc{car} of @var{cons-cell}.
+cons cell @var{cons-cell}. In other words, it returns the @sc{car} of
+@var{cons-cell}.
-As a special case, if @var{cons-cell} is @code{nil}, then @code{car}
-is defined to return @code{nil}; therefore, any list is a valid argument
-for @code{car}. An error is signaled if the argument is not a cons cell
-or @code{nil}.
+As a special case, if @var{cons-cell} is @code{nil}, this function
+returns @code{nil}. Therefore, any list is a valid argument. An
+error is signaled if the argument is not a cons cell or @code{nil}.
@example
@group
@end defun
@defun cdr cons-cell
-This function returns the value referred to by the second slot of
-the cons cell @var{cons-cell}. Expressed another way, this function
-returns the @sc{cdr} of @var{cons-cell}.
+This function returns the value referred to by the second slot of the
+cons cell @var{cons-cell}. In other words, it returns the @sc{cdr} of
+@var{cons-cell}.
-As a special case, if @var{cons-cell} is @code{nil}, then @code{cdr}
-is defined to return @code{nil}; therefore, any list is a valid argument
-for @code{cdr}. An error is signaled if the argument is not a cons cell
-or @code{nil}.
+As a special case, if @var{cons-cell} is @code{nil}, this function
+returns @code{nil}; therefore, any list is a valid argument. An error
+is signaled if the argument is not a cons cell or @code{nil}.
@example
@group
@result{} nil
@end group
@group
-(setq l (make-list 3 '(a b))
+(setq l (make-list 3 '(a b)))
@result{} ((a b) (a b) (a b))
(eq (car l) (cadr l))
@result{} t
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 Emacs 20 and before, the @code{append} function also allowed
-integers as (non last) arguments. It converted them to strings of
-digits, making up the decimal print representation of the integer, and
-then used the strings instead of the original integers. This obsolete
-usage no longer works. The proper way to convert an integer to a
-decimal number in this way is with @code{format} (@pxref{Formatting
-Strings}) or @code{number-to-string} (@pxref{String Conversion}).
@end defun
Here is an example of using @code{append}:
@cindex CL note---lack @code{union}, @code{intersection}
@quotation
@b{Common Lisp note:} Common Lisp has functions @code{union} (which
-avoids duplicate elements) and @code{intersection} for set operations,
-but GNU Emacs Lisp does not have them. You can write them in Lisp if
-you wish.
+avoids duplicate elements) and @code{intersection} for set operations.
+Although standard GNU Emacs Lisp does not have them, the @file{cl}
+library provides versions. @inforef{Top, Overview, cl}.
@end quotation
@defun memq object list
(delq '(4) sample-list)
@result{} (a c (4))
@end group
+@end example
If you want to delete elements that are @code{equal} to a given value,
use @code{delete} (see below).
-@end example
@defun remq object list
This function returns a copy of @var{list}, with all elements removed
l
@result{} ((2) (1))
;; @r{If you want to change @code{l} reliably,}
-;; @r{write @code{(setq l (delete elt l))}.}
+;; @r{write @code{(setq l (delete '(2) l))}.}
@end group
@group
(setq l '((2) (1) (2)))
(ring-remove fifo)))
@result{} (0 t one t "two")
@end lisp
-
-@ignore
- arch-tag: 31fb8a4e-4aa8-4a74-a206-aa00451394d4
-@end ignore