18 lines
469 B
Common Lisp
18 lines
469 B
Common Lisp
(defun my-but-last (lst)
|
|
"Return the last two elements of the list LST."
|
|
(cond
|
|
((null lst) nil)
|
|
((null (cadr lst)) nil)
|
|
((null (caddr lst)) lst)
|
|
(t (my-but-last (cdr lst)))))
|
|
|
|
;; Native implementation
|
|
;; (last lst 2)
|
|
|
|
;; C-c C-k
|
|
(assert (equal (my-but-last '()) nil))
|
|
(assert (equal (my-but-last '(a)) nil))
|
|
(assert (equal (my-but-last '(a b)) '(A B)))
|
|
(assert (equal (my-but-last '(a b c)) '(B C)))
|
|
(assert (equal (my-but-last '(a b c d)) '(C D)))
|