gpt4 book ai didi

lisp - 如何创建结构的深拷贝

转载 作者:太空宇宙 更新时间:2023-11-03 18:46:58 25 4
gpt4 key购买 nike

如何在 Common Lisp 中复制结构?我创建了一个结构,如:

(defstruct state board player previous-move depth)

Board 是一个二维数组。我试过这样做:

(setf new-state state)

当我在 new-state 中更改某些内容时,二维数组中的更改也发生在 state 中。如何创建像 state 这样的结构的副本并独立更改它?

最佳答案

Common Lisp 为您提供了两种方式:

  • 使用 DEFSTRUCT state 定义了一个函数 copy-state

  • COPY-STRUCTURE 函数复制结构

请注意,这些是浅拷贝。仅复制插槽引用。不会有引用数据的副本。

要复制数组,您需要编写一个例程(可能有库例程)。

关于lisp - 如何创建结构的深拷贝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17455505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com