您的位置:首页 > 其它

ANSI Common Lisp 笔记三(数组)

2016-09-17 11:30 162 查看
摘自 《ANSI Common Lisp》

一、数组

可以调用 make-array 构造一个数组。第一个参数为一个列表,为数组的维度(如果只想要一个一维数组,可以给make-array第一个参数一个整数,而不是一个列表)。数组在 Common Lisp里至少可以有七个维度,每个维度至少可以有1023个元素。

:initial-element参数是选择性的。如果提供了这个参数,整个数组会用指定的值作初始化。

CL-USER> (setf arr (make-array '(2 3) :initial-element nil))

 (setf arr (make-array '(2 3) :initial-element nil))

#2A((NIL NIL NIL) (NIL NIL NIL))

取出数组内的元素我们调用 aref  :

CL-USER> (aref arr 0 0)

NIL

要替换数组的某个元素,我们使用 setf  和 aref :

CL-USER> (setf (aref arr 0 0) 'b)

B

一个一维数组又称为向量,通过调用vector ,他会返回一个无论你给入什么参数的向量。

CL-USER> (vector "a" 'b 3)

#("a" B 3)

你可以用 aref 来存取向量,但有一个更快的函数叫做 svref 给存取向量使用。

CL-USER> (svref vec 0)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: