我有一个结构列表,我想编写一个函数来改变结构中的一些插槽而不影响原始列表。我尝试使用copy-list,但它不够深入;插槽值也在原始列表中更改。我的问题是,是否有内置函数可以完成我想要的操作?或者我应该编写自己的函数?谢谢。
编辑:
我接着编写了自己的函数,是否有一个可以执行此操作的内置函数?
(defun deep-copy (li)
(if (null li)
nil
(cons (copy-structure (car li)) (deep-copy (rest li)))))
答案 0 :(得分:10)
预先定义该功能几乎没有价值。
您的代码只是:
(mapcar #'copy-structure some-list)