#

Accessor REST

Syntax:

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.

Description:

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)

Examples:

     (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

Notes:

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:

- DOTTED-LIST-ARGUMENTS:CLARIFY

Copyright 1996-2005, LispWorks Ltd. All rights reserved.