История изменений
Исправление Zubok, (текущая версия) :
единственный пример, который подходит (кроме «функций», хотя есть и функциональные варианты), и который приводили - форт и все его веселое семейство.
что значит единственный? Common Lisp же. Возврат множества значений из функции (values ...) — это конструкция языка, которая не возвращает результат в каком-то композитном типе типа списка, структуры, вектора, а именно как бы по отдельности укладывает в нужное место. Если спросить про тип, который функция возвратила, то будет тип первого значения. Чтобы прочесть и другие результаты, надо использовать специально обученные конструкции для этого (выше все приведены):
CL-USER> (type-of (values "12" 'a 3))
(SIMPLE-ARRAY CHARACTER (2))
CL-USER> (type-of (values 'a "12" 3))
SYMBOL
CL-USER> (type-of (values 3 'a "12"))
(INTEGER 0 4611686018427387903)
CL-USER>
Исходная версия Zubok, :
единственный пример, который подходит (кроме «функций», хотя есть и функциональные варианты), и который приводили - форт и все его веселое семейство.
что значит единственный? Common Lisp же. Возврат множества значений из функции (values ...) — это конструкция языка, которая не возвращает результат в каком-то композитном типе типа списка, структуры, вектора, а именно как бы по отдельности укладывает в нужное место. Если спросить про тип, который функция возвратила, то будет тип первого значения.
CL-USER> (type-of (values "12" 'a 3))
(SIMPLE-ARRAY CHARACTER (2))
CL-USER> (type-of (values 'a "12" 3))
SYMBOL
CL-USER> (type-of (values 3 'a "12"))
(INTEGER 0 4611686018427387903)
CL-USER>