Функции +, *, list, append принимают произвольное число аргументов. Ключевое слово лямбда-списка &rest может фигурировать в списке формальных параметров.
(defun f (x y &rest z)
(cons (+ x 10) (cons (+ y 20) z)))
(f 1 2 3 4 5)
(11 22 3 4 5)
Параметры x и y
обязательные:
функция f принимает не меньше двух аргументов.
При вызове эти первые два связываются с x и y соответственно.
Остаточный,
или хвостовой,
параметр z получит в качестве значения список всех оставшихся аргументов.