3.4 建立列表 (Building Lists)
图 3.5 复制的结果
函数 copy-list
接受一个列表,然后返回此列表的复本。新的列表会有同样的元素,但是装在新的 Cons 对象里:
> (setf x '(a b c)
y (copy-list x))
(A B C)
图 3.5 展示出结果的结构; 返回值像是有着相同乘客的新公交。我们可以把 copy-list
想成是这么定义的:
(defun our-copy-list (lst)
(if (atom lst)
lst
(cons (car lst) (our-copy-list (cdr lst)))))
这个定义暗示着 x
与 (copy-list x)
会永远 equal
,并永远不 eql
,除非 x
是 NIL
。
最后,函数 append
返回任何数目的列表串接 (concatenation):
> (append '(a b) '(c d) 'e)
(A B C D . E)
通过这么做,它复制所有的参数,除了最后一个
当前内容版权归 readthedocs 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 readthedocs .