递归删除并替换clojure中的项目
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了递归删除并替换clojure中的项目相关的知识,希望对你有一定的参考价值。
我的问题是从列表中删除一个项目并将其替换为新值。例如,如果我有列表'(F J (N R D A))
,我想用一个全新的列表替换它,如'(F J (M G E Q F))
。所以我将删除最里面的列表并用新的列表替换它。有什么建议?
答案
您可以使用clojure.walk
递归替换数据结构的元素:
(def my-list '(F J (N R D A)))
(walk/postwalk
#(if (= '(N R D A) %)
'(M G E Q F)
%)
my-list)
=> (F J (M G E Q F))
另一答案
怎么样:
(replace {'(N R D A) '(M G E Q F)} '(F J (N R D A))) => (F J (M G E Q F))
以上是关于递归删除并替换clojure中的项目的主要内容,如果未能解决你的问题,请参考以下文章