向量
编辑教程向量
向量是一维数组,数组因此子类型。向量和列表统称序列。因此,我们迄今为止所讨论的所有序列的通用函数和数组函数,工作在向量上。
创建向量
向量函数使可以使用特定的值固定大小的向量。这需要任意数量的参数,并返回包含这些参数的向量。
示例1
创建一个名为main.lisp一个新的源代码文件,并在其中输入如下代码:
(setf v1 (vector 1 2 3 4 5))
(setf v2 #(a b c d e))
(setf v3 (vector 'p 'q 'r 's 't))
(write v1)
(terpri)
(write v2)
(terpri)
(write v3)
当执行代码,它返回以下结果:
#(1 2 3 4 5)
#(A B C D E)
#(P Q R S T)
请注意,LISP使用#(...)语法为向量的文字符号。可以使用此#(...)语法来创建并包含在代码中的文字向量。
然而,这些是文字向量,所以修改它们没有在LISP语言中定义。因此,对于编程,应始终使用向量函数,或者make-array函数来创建打算修改的向量。
make-array函数是比较通用的方式来创建一个矢量。可以访问使用aref函数的矢量元素。
示例 2
创建一个名为main.lisp一个新的源代码文件,并在其中输入如下代码:
(setq a (make-array 5 :initial-element 0))
(setq b (make-array 5 :initial-element 2))
(dotimes (i 5)
(setf (aref a i) i))
(write a)
(terpri)
(write b)
(terpri)
当执行代码,它返回以下结果:
#(0 1 2 3 4)
#(2 2 2 2 2)
Fill 指针
make-array函数允许创建一个可调整大小的矢量。
函数fill-yiibaier参数跟踪实际存储在向量中的元素的数量。它的下一个位置,当添加元素的向量来填充的索引。
vector-push函数允许将元素添加到一个可调整大小的矢量的结束。它增加了填充指针加1。
vector-pop函数返回最近推条目,由1递减填充指针。
示例
创建一个名为main.lisp一个新的源代码文件,并在其中输入如下代码:
(adsbygoogle = window.adsbygoogle || []).push({});
(adsbygoogle = window.adsbygoogle || []).push({});
(setq a (make-array 5 :fill-yiibaier 0))
(write a)
(vector-push 'a a)
(vector-push 'b a)
(vector-push 'c a)
(terpri)
(write a)
(terpri)
(vector-push 'd a)
(vector-push 'e a)
;this will not be entered as the vector limit is 5
(vector-push 'f a)
(write a)
(terpri)
(vector-pop a)
(vector-pop a)
(vector-pop a)
(write a)
当执行代码,它返回以下结果:
#()
#(A B C)
#(A B C D E)
#(A B)
Mos固件,小电视必刷固件
ES6 教程
Vue.js 教程
JSON 教程
jQuery 教程
HTML 教程
HTML 5 教程
CSS 教程
CSS3 教程
JavaScript 教程
DHTML 教程
JSON在线格式化工具
JS在线运行
JSON解析格式化
jsfiddle中国国内版本
JS代码在线运行
PHP代码在线运行
Java代码在线运行
C语言代码在线运行
C++代码在线运行
Python代码在线运行
Go语言代码在线运行
C#代码在线运行
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。
大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
选择支付方式:
立即支付
¥
9.99
无法付款,请点击这里
金额: 0 元
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟