4

如果在 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 中找到答案。
4

2 回答 2

8

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

超规范在此处记录类型 SIMPLE-ARRAY:

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

于 2011-12-01T13:29:40.523 回答
1

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

于 2011-12-01T15:38:47.233 回答