Множественные значения — результат вычисления, а не сохраняемое гостевое значение. Каждая позиция продолжения объявляет допустимое число значений.
Кратко
LISPEX
(call-with-values (lambda () (floor/ 17 5)) list)Результат
OUTPUT
(3 2)Текущие гарантии
- Контекст одного значения требует ровно одно и выдаёт E320 для нуля или двух и более.
- Контексты отбрасывания принимают любое число;
call-with-valuesпередаёт пакет производителя аргументами потребителю. - Операнды
valuesсами являются контекстами одного значения и вычисляются слева направо.
Границы
- Множественные значения не упаковываются в список или вектор.
- Использование
(values)там, где нужно одно значение, — ошибка, а не неопределённый маркер.