gpt4 book ai didi

clojure - 将嵌套映射分解为键值对

转载 作者:行者123 更新时间:2023-12-02 13:51:31 25 4
gpt4 key购买 nike

我想将 Clojure 中的嵌套映射分解为一系列键值对。例如,我们有这张 map :

{:a :b
:c {:d {:e :f
:g :h}
:i :j}}

分解后的 map 应如下所示:

[[:a :b]
[:c {:d {:e :f
:g :h}
:i :j}]
[:d {:e :f
:g :h}]
[:e :f]
[:g :h]
[:i :j]]

输出的顺序并不重要。

我正在考虑使用递归函数、tree-seq 或 clojure.walk 来解决这个问题。我怀疑我可能缺少 Clojure 标准库中的某些内容。解决这个问题的最佳解决方案是什么?

最佳答案

这是一个使用tree-seq的解决方案:

(defn decompose [m]
(mapcat (partial tree-seq (comp map? val) val) m))

这会产生一系列 MapEntry

关于clojure - 将嵌套映射分解为键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35064875/

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