使用选择键的clojure prewalk

时间:2014-05-30 20:43:22

标签: clojure

(clojure.walk/prewalk #(if (map? %)
                           (select-keys  % [:c])
                            %)
                      {:a 1 :b [{:c 3} {:d 4}] :c 5})
=>{:c 5}

为什么这只会找到{:c 5}而不是{:c 3}? 我正在尝试编写一些内容,它将为我指定的密钥提取任何形式和任何级别的所有键/值对。

1 个答案:

答案 0 :(得分:0)

使用

调用函数时
{:c 5, :b [{:c 3} {:d 4}], :a 1}

...它返回:

{:c 5}

...因此丢弃所有其他密钥,包括:b分支,因此不会遍历。