3

我有一个结构列表,我想编写一个函数来改变结构中的一些槽而不影响原始列表。我尝试使用复制列表,但它不够深;插槽值也在原始列表中更改。我的问题是,是否有一个内置函数可以满足我的需求?还是我应该自己编写一个?谢谢你。

编辑:

我继续编写自己的函数,是否有内置函数可以做到这一点?

(defun deep-copy (li)
    (if (null li)
        nil
        (cons (copy-structure (car li)) (deep-copy (rest li)))))
4

1 回答 1

9

预定义该功能几乎没有价值。

您的代码只是:

(mapcar #'copy-structure some-list)
于 2012-10-17T06:43:00.320 回答