[LISPWORKS][Common Lisp HyperSpec (TM)] [Previous][Up][Next]

Accessor REST


rest list => tail

(setf (rest list) new-tail)

Arguments and Values:

list---a list, which might be a dotted list or a circular list.

tail---an object.


rest performs the same operation as cdr, but mnemonically complements first. Specifically,

 (rest list) ==  (cdr list)
 (setf (rest list) new-tail) ==  (setf (cdr list) new-tail)


 (rest '(1 2)) =>  (2)
 (rest '(1 . 2)) =>  2
 (rest '(1)) =>  NIL
 (setq *cons* '(1 . 2)) =>  (1 . 2)
 (setf (rest *cons*) "two") =>  "two"
 *cons* =>  (1 . "two")

Side Effects: None.

Affected By: None.

Exceptional Situations: None.

See Also:

cdr, nthcdr


rest is often preferred stylistically over cdr when the argument is to being subjectively viewed as a list rather than as a cons.

The following X3J13 cleanup issue, not part of the specification, applies to this section:

[Starting Points][Contents][Index][Symbols][Glossary][Issues]
Copyright 1996-2005, LispWorks Ltd. All rights reserved.