Ответ 1
Существует типp, чтобы определить, имеет ли данная переменная некоторый конкретный тип данных, например. целое число, хэш-таблица и т.д.,
Не совсем. В Common Lisp переменные не печатаются, как вы думаете.
(defvar *x* 1)
*x*
(typep *x* 'integer)
T
Выше ничего не говорится о типе переменной *x*
. Он подтверждает, что объект 1
имеет тип integer
.
но есть ли функция, которая возвращает тип данных?
Не совсем. Существует функция TYPE-OF
, которая возвращает тип объекта, а не переменной.
> (type-of 1)
FIXNUM
Нет никакой разницы, когда мы получаем значение из переменной.
> (type-of *x*)
FIXNUM
Но это не означает, что переменная имеет этот тип.
Примечание. Общие Lisp имеют типы и типы объявлений. Но это выглядит несколько иначе.