Lisp-向量

  • 时间:
  • 浏览:63
  • 来源:it300
向量是一维数组,因此是数组的子类型。向量和列表统称为序列。因此,到目前为止我们已经讨论过的所有序列泛型函数和数组函数都是在向量上工作的。创建向量向量向量这个向量函数允许您使用特定的值来制作固定大小的向量。它接受任意数量的参数并返回包含这些参数的向量。例如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 2 2)fill pointer生成数组函数允许您创建可调整大小的向量。填充指针arg函数的参数跟踪实际存储在向量中的元素的数量。它是向向量添加元素时要填充的下一个位置的索引。Vector Push函数允许您向可调整大小的向量的末尾添加元素。它将填充指针增加1。vector pop函数返回最近推送的项,并将填充指针减少1。示例创建一个名为main.lisp的新源代码文件,并在其中键入以下代码。实况演示(setq a(make array 5:fill pointer 0))(write a)(vector push'a)(vector push'b a)(vector push'c a)(terpri)(write a)(terpri)(vector push'd a)(vector push'e a);这不会被输入,因为执行代码时vector limit为5(vector push'f a)(write a)(terpri vector pop a)(vector pop a)(vector pop a)(vector pop a)(write a),它返回结果−()(a b c)(a b c d e)(a b)矢量为序列,所有序列函数均适用于矢量。有关向量函数,请参阅“序列”一章。

猜你喜欢

希腊最高法院批准俄罗斯对比特币嫌疑人的请求

希腊最高法院批准俄罗斯对比特币嫌疑人的请求希腊最高法院上周五表示,一名据称使用比特币数字货币洗钱40亿美元的俄罗斯人应该被引渡到俄罗斯,一位法院消息人士说。AlexanderV

2019-02-01

塑造美国网络防御的创造性破坏和自满情绪

塑造美国网络防御的创造性破坏和自满情绪创造性的破坏,思维的范式转换取代现有的秩序,可能是一个难以捉摸的概念,但它作为人类行为驱动力的力量是不可否认的。在硅谷和其他美国的高层科技

2019-02-01

为什么我(非常)担心PRISM

为什么我(非常)担心PRISM美国国家安全局正在利用我们的数字生活,监控语音电话,电子邮件,社交媒体以及谁知道什么。美国国家安全局方面的人说,这是为了国家安全;它已经停止了恐怖

2019-02-01

先发优势:为什么新的恶意软件最初会打败反恐

先发优势:为什么新的恶意软件最初会打败反恐虽然反病毒解决方案可以有效对抗广泛使用的恶意软件,但是有一个很好的机会,新的恶意软件会躲过那些解决方案。最近有重大安全事件的报告激增,

2019-02-01

台湾银行抢劫与朝鲜黑客有关

台湾银行抢劫与朝鲜黑客有关最近针对台湾一家银行的网络抢劫事件已被安全研究人员联系到一个据信在朝鲜境外活动的臭名昭着的威胁组织。黑客利用SWIFT全球金融网络大致窃取来自台湾远东

2019-02-01