Множественное значение и VALUES

Встроенные арифметические функции: floor, ceiling и т.п. — возвращают множественное значение.

Особый оператор values позволяет из любой функции вернуть произвольное число (включая ноль) значений.

Особый оператор multiple-value-bind оценивает выражение и связывает все его значения с указанными переменными.

;; возвращает ноль значений, словно void в языке Си
(multiple-value-bind (q r) (round 35.7)
  (print "Частное и остаток:")
  (prin1 q) (princ " и ") (prin1 r)
  (values))
"Частное и остаток:" 36 и -0.29999999999999716

(defun mv-return (x)
  (values x (* x x) (* x x x)))  ; сразу 3 значения через стек

(defun mv-bind (x)
  (multiple-value-bind (y1 y2 y3) (mv-return x)
    (+ y1 y2 y3)))

(mv-bind 2)
14