mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
(last): Accept optional second argument.
This commit is contained in:
parent
59966fb622
commit
369fba5fb7
1 changed files with 14 additions and 6 deletions
20
lisp/subr.el
20
lisp/subr.el
|
|
@ -79,12 +79,20 @@ BODY should be a list of lisp expressions."
|
|||
"Return the cdr of the cdr of X."
|
||||
(cdr (cdr x)))
|
||||
|
||||
(defun last (x)
|
||||
"Return the last element of the list X.
|
||||
If X is nil, return nil."
|
||||
(while (cdr x)
|
||||
(setq x (cdr x)))
|
||||
x)
|
||||
(defun last (x &optional n)
|
||||
"Return the last link of the list X. Its car is the last element.
|
||||
If X is nil, return nil.
|
||||
If N is non-nil, return the Nth-to-last link of X.
|
||||
If N is bigger than the length of X, return X."
|
||||
(if n
|
||||
(let ((m 0) (p x))
|
||||
(while (consp p)
|
||||
(setq m (1+ m) p (cdr p)))
|
||||
(if (<= n 0) p
|
||||
(if (< n m) (nthcdr (- m n) x) x)))
|
||||
(while (cdr x)
|
||||
(setq x (cdr x)))
|
||||
x))
|
||||
|
||||
;;;; Keymap support.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue