Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 我可以使整个数据结构暂时/持久化吗?_Clojure - Fatal编程技术网

Clojure 我可以使整个数据结构暂时/持久化吗?

Clojure 我可以使整个数据结构暂时/持久化吗?,clojure,Clojure,从中可以看出,调用transient和persistent仅作用于该集合对象(向量、哈希映射或哈希集) 如果我有一个对象树,有没有一种方法可以递归地获取整个结构的临时副本?然后将整个结构转回?正如@Alex所说,您需要使用自己的函数来遍历数据结构。还要注意的是,在中没有assoc与assoc in并行,这意味着如果你想assoc in到嵌套的数据结构中,你可能最终也会将你自己的版本滚动到嵌套的数据结构中。如果你将此作为一个答案发布,我将完全投赞成票,你可能必须使用clojure.walk/pos

从中可以看出,调用
transient
persistent仅作用于该集合对象(向量、哈希映射或哈希集)


如果我有一个对象树,有没有一种方法可以递归地获取整个结构的临时副本?然后将整个结构转回?

正如@Alex所说,您需要使用自己的函数来遍历数据结构。还要注意的是,在中没有
assoc
assoc in
并行,这意味着如果你想
assoc in
到嵌套的数据结构中,你可能最终也会将你自己的版本滚动到嵌套的数据结构中。

如果你将此作为一个答案发布,我将完全投赞成票,你可能必须使用
clojure.walk/postwall
@Alex滚动你自己的版本it@ArthurUlfeldt原来clojure.walk对瞬变不起作用。所以你真的得自己动手了。