GNU Common Lisp的详细信息(类型)

时间:2011-12-01 13:12:54

标签: lisp common-lisp clisp gnu-common-lisp

如果在REPL我输入:

(type-of (make-array 5))

然后我收到回复:

(SIMPLE-VECTOR 5)

足够公平。所以如果在REPL我输入:

(type-of (make-array (list 5 3 2)))

然后我收到回复:

(SIMPLE-ARRAY T (5 3 2))

我有两个问题。

  1. T在这告诉我什么?如果它是NIL,那会告诉我什么?
  2. 我在哪里可以自己找到这个答案?我没能在(例如)Lisp HyperSpec中找到答案。

2 个答案:

答案 0 :(得分:8)

(SIMPLE-ARRAY T (5 3 2))是一个包含三维的简单数组。 T表示它是一个通用数组,可以包含任何元素类型。 T是最常见的类型。

hyperspec在这里记录SIMPLE-ARRAY类型:

http://www.lispworks.com/documentation/HyperSpec/Body/t_smp_ar.htm

答案 1 :(得分:1)

1)如果T为NIL,你将拥有一个三维数组,专门用于不存储数据(没有元素的类型为NIL;我相信所有类型都是超类型的NIL)。