ANSI Common Lisp 笔记三(数组)

摘自 《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)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值