Next: Substitution of Expressions, Up: Lists
This section describes a number of simple operations on lists, i.e., chains of cons cells.
This function is equivalent to
(car (cdr (cdrx))). Likewise, this package defines all 24cxxxrfunctions where xxx is up to four ‘a’s and/or ‘d’s. All of these functions aresetf-able, and calls to them are expanded inline by the byte-compiler for maximum efficiency.
This function is a synonym for
(carx). Likewise, the functionscl-second,cl-third, ..., throughcl-tenthreturn the given element of the list x.
Common Lisp defines this function to act like
null, but signaling an error ifxis neither anilnor a cons cell. This package simply definescl-endpas a synonym fornull.
This function returns the length of list x, exactly like
(lengthx), except that if x is a circular list (where the cdr-chain forms a loop rather than terminating withnil), this function returnsnil. (The regularlengthfunction would get stuck if given a circular list. See also thesafe-lengthfunction.)
This function constructs a list of its arguments. The final argument becomes the cdr of the last cell constructed. Thus,
(cl-list*a b c)is equivalent to(consa(consb c)), and(cl-list*a bnil)is equivalent to(lista b).
If sublist is a sublist of list, i.e., is
eqto one of the cons cells of list, then this function returns a copy of the part of list up to but not including sublist. For example,(cl-ldiff x (cddr x))returns the first two elements of the listx. The result is a copy; the original list is not modified. If sublist is not a sublist of list, a copy of the entire list is returned.
This function returns a copy of the list list. It copies dotted lists like
(1 2 . 3)correctly.
This function compares two trees of cons cells. If x and y are both cons cells, their cars and cdrs are compared recursively. If neither x nor y is a cons cell, they are compared by
eql, or according to the specified test. The:keyfunction, if specified, is applied to the elements of both trees. See Sequences.