在 common lisp 中复制结构列表
Posted
技术标签:
【中文标题】在 common lisp 中复制结构列表【英文标题】:copying list of structs in common lisp 【发布时间】:2012-10-07 06:37:12 【问题描述】:我有一个结构列表,我想编写一个函数来改变结构中的一些槽而不影响原始列表。我尝试使用复制列表,但它不够深;插槽值也在原始列表中更改。我的问题是,是否有一个内置函数可以满足我的需求?还是我应该自己编写一个?谢谢。
编辑:
我继续写了自己的函数,有没有内置的函数可以做到这一点?
(defun deep-copy (li)
(if (null li)
nil
(cons (copy-structure (car li)) (deep-copy (rest li)))))
【问题讨论】:
【参考方案1】:预定义该功能没有什么价值。
您的代码只是:
(mapcar #'copy-structure some-list)
【讨论】:
AAAahhhhhh,你是对的:D。这是一个愚蠢的问题,虽然已经很晚了:D。非常感谢您花时间回答这个问题。以上是关于在 common lisp 中复制结构列表的主要内容,如果未能解决你的问题,请参考以下文章
Common Lisp:在 first、rest、last 中解构列表(如 Python 可迭代解包)
使用 Lisp:编写一个名为 myList 的 Common Lisp 函数,它创建以下列表并返回它
如何使用依赖于包装它的较短列表的 map 循环较长的列表以将某些函数应用于 Common Lisp 中的较长列表?