2013-01-04 89 views

回答

5

看起来你想要走过一个数据结构。

user=> (def s '((:a :b)((:c :d) :a) :a)) 
#'user/s 
user=> (use 'clojure.walk) 
nil 
user=> (prewalk #(if (= :a %1) :z %1) s) 
((:z :b) ((:c :d) :z) :z) 

编辑:或者,如果你确实只需要更换,更简单

user=> (prewalk-replace '{a z} '((a b) ((c d) a))) 
((z b) ((c d) z)) 
相关问题