Песочница

Множественные значения и контексты

Множественные значения — результат вычисления, а не сохраняемое гостевое значение. Каждая позиция продолжения объявляет допустимое число значений.

Кратко

LISPEX
(call-with-values (lambda () (floor/ 17 5)) list)

Результат

OUTPUT
(3 2)

Текущие гарантии

  • Контекст одного значения требует ровно одно и выдаёт E320 для нуля или двух и более.
  • Контексты отбрасывания принимают любое число; call-with-values передаёт пакет производителя аргументами потребителю.
  • Операнды values сами являются контекстами одного значения и вычисляются слева направо.

Границы

  • Множественные значения не упаковываются в список или вектор.
  • Использование (values) там, где нужно одно значение, — ошибка, а не неопределённый маркер.