Files
2026-01-25 10:10:33 +01:00

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)))