|
ANSI Common Lisp 14 Conses 14.2 Dictionary of Conses
- Syntax:
-
last
list &optional n
tail
- Arguments and Values:
-
list - a list,
which might be a dotted list but must not be a circular list.
n - a non-negative integer.
The default is 1.
tail - an object.
- Description:
-
last returns the last n conses
(not the last n elements) of list).
If list is (), last returns ().
If n is zero,
the atom that terminates list is returned.
If n is greater than or equal to the number of cons cells in list,
the result is list.
- Examples:
-
(last nil) NIL
(last '(1 2 3)) (3)
(last '(1 2 . 3)) (2 . 3)
(setq x (list 'a 'b 'c 'd)) (A B C D)
(last x) (D)
(rplacd (last x) (list 'e 'f)) x (A B C D E F)
(last x) (F)
(last '(a b c)) (C)
(last '(a b c) 0) ()
(last '(a b c) 1) (C)
(last '(a b c) 2) (B C)
(last '(a b c) 3) (A B C)
(last '(a b c) 4) (A B C)
(last '(a . b) 0) B
(last '(a . b) 1) (A . B)
(last '(a . b) 2) (A . B)
- Exceptional Situations:
-
The consequences are undefined if list is a circular list.
Should signal an error of type type-error if n is not a non-negative integer.
- See Also:
-
butlast,
nth
- Notes:
-
The following code could be used to define last.
(defun last (list &optional (n 1))
(check-type n (integer 0))
(do ((l list (cdr l))
(r list)
(i 0 (+ i 1)))
((atom l) r)
(if (>= i n) (pop r))))
- Allegro CL Implementation Details:
-
None.
|