Если в REPL я введу:
(type-of (make-array 5))
, то получу ответ:
(SIMPLE-VECTOR 5)
Достаточно справедливо.Поэтому, если в REPL я ввожу:
(type-of (make-array (list 5 3 2)))
, тогда я получаю ответ:
(SIMPLE-ARRAY T (5 3 2))
У меня два вопроса.
T
NIL
(SIMPLE-ARRAY T (5 3 2)) - это простой массив из трех измерений. T говорит, что это общий массив, который может содержать элемент любого типа. T является наиболее общим типом.
Гиперспец документирует тип SIMPLE-ARRAY здесь:
http://www.lispworks.com/documentation/HyperSpec/Body/t_smp_ar.htm
1) Если бы T был NIL, у вас был бы трехмерный массив, специализированный на том, чтобы не хранить данные (ни один элемент не имеет типа NIL; я считаю, что все типы являются супертипом NIL).