clisp 的集合
2023-09-14 08:58:45 时间
集合
将多个值收集到单一对象的标准数据类型
集合基本可归结为一个整数索引的数组类型
向量
可以把向量比作一维数组
定向向量:指定了length
变长向量:长度随着元素的增加,减少而变化
(vector 1 2 3) ; #(1 2 3)
#(1 2 3) ; #(1 2 3)
;; (make-array list) list的长度表示多少维度, list索引对应的元素表示对应维度的长度,
(make-array '(3) :initial-element 1) ; #(1 1 1)
;; 这不是向量而是数组
(make-array '(4 2)) ;#2A((NIL NIL) (NIL NIL) (NIL NIL) (NIL NIL))
:fill-pointer 定向向量
创建带有填充指针的向量
(make-array 5 :fill-pointer 0) ; #()
(let ((arr (make-array 3 :fill-pointer 0)))
(vector-push 'a arr)
(vector-push 'b arr)
(vector-push 'c arr)
(vector-push 'd arr)
(print arr)) ; #(A B C) 没有D,应为固定了长度为3
(vector-pop arr) ; 取出arr最后一个,并改变arr
:adjustable t 变长向量
(let ((arr (make-array 3
:fill-pointer 0
:adjustable t))) ; :adjustable t 申明变长向量
(vector-push 'a arr)
(vector-push 'b arr)
(vector-push 'c arr)
(vector-push-extend 'd arr) ; 自动扩展数组
(print arr)) ; #(A B C D)
:element-type 'string 子类型
(let* ((arr (make-array 1
:fill-pointer 0
:adjustable t
:element-type 'string)))
(vector-push-extend "ajanuw" arr)
(vector-push-extend "alone" arr)
(vector-push-extend "venom" arr)
(print arr)) ; #("ajanuw" "alone" "venom")
相关文章
- Javamap集合_javaweb开源项目
- python从列表字典集合中筛选数据
- Java集合List接口详解——含源码分析
- Adobe Creative Cloud for mac(acc多媒体制作工具集合)
- Java 近期新闻:JDK 21 序列集合、JDK 20 向量 API、Gen ZGC、Hilla 2.0
- 【Java】集合-ArrayList详解编程语言
- Struts2 merge标签:合并集合标签
- 技术利用Oracle加速集合技术的发展(oraclein集合)
- 数据在Oracle中查询返回集合数据(oracle返回集合)
- collectionsMongoDB:展示集合中的内容(mongodb show)
- 往redis中塞入无限可能性的集合(往redis中塞集合)
- Oracle中集合操作符应用实践(oracle中集合操作符)
- 探索Oracle中的集合操作(oracle中的集合操作)
- Redis实现快速读取集合数据(redis 集合 读取)
- Redis集合Size测量及其特性分析(redis 集合size)
- 使用Redis设置集合,提升存储性能(redis设置集合命令)