Встроенные арифметические функции: floor, ceiling и т.п. — возвращают множественное значение.
Особый оператор values позволяет из любой функции вернуть произвольное число (включая ноль) значений.
Особый оператор multiple-value-bind оценивает выражение и связывает все его значения с указанными переменными.
избыточныепеременные получат значение
NIL
;избыточныезначения игнорируются.
;; возвращает ноль значений, словно 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