在通用Lisp中,可以使用列表(list)和向量(vector)来存储和操作数据。下面是比较列表和向量在通用Lisp中的使用的代码示例:
;; 创建列表
(setq my-list '(1 2 3 4 5))
;; 创建向量
(setq my-vector [1 2 3 4 5])
;; 访问列表的第一个元素
(car my-list) ; 输出: 1
;; 访问向量的第一个元素
(aref my-vector 0) ; 输出: 1
;; 修改列表的第一个元素
(setf (car my-list) 10) ; my-list变为(10 2 3 4 5)
;; 修改向量的第一个元素
(setf (aref my-vector 0) 10) ; my-vector变为[10 2 3 4 5]
;; 向列表末尾添加元素
(setq my-list (append my-list '(6 7))) ; my-list变为(10 2 3 4 5 6 7)
;; 向向量末尾添加元素
(setq my-vector (append my-vector [6 7])) ; my-vector变为[10 2 3 4 5 6 7]
;; 获取列表的长度
(length my-list) ; 输出: 7
;; 获取向量的长度
(length my-vector) ; 输出: 7
;; 遍历列表的元素
(dolist (element my-list)
(print element))
;; 遍历向量的元素
(dotimes (index (length my-vector))
(print (aref my-vector index)))
这些示例展示了在通用Lisp中使用列表和向量的基本操作。请注意,列表和向量在某些方面有不同的性能和用途,根据具体的需求选择合适的数据结构。