gpt4 book ai didi

clojure - 基本 Clojure : how do I flatten a nested list?

转载 作者:行者123 更新时间:2023-12-02 10:32:31 30 4
gpt4 key购买 nike

请看下面的代码:

(def data {:color ["R", "B", "G"] :name "Hello" :up "down"})

(defn collapse-vector-kvp [k v]
(map #(hash-map k %) v))

(defn collapse-map [m]
(map #(let
[x %]
(if (vector? (val x))
(collapse-vector-kvp (key x) (val x))
(hash-map (key x) (val x))
)) m))

(collapse-map data)

=> ({:name "Hello"} ({:color "R"} {:color "B"} {:color "G"}) {:up "down"})

我想做的是创建一个列表,而不是将“颜色”条目放在列表中的列表中。这容易实现吗?

最佳答案

user=> (def data2 '({:name "Hello"} ({:color "R"} {:color "B"} {:color "G"}) {:up "down"}))
#'user/data2
user=> (flatten data2)
({:name "Hello"} {:color "R"} {:color "B"} {:color "G"} {:up "down"})

关于clojure - 基本 Clojure : how do I flatten a nested list?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14274295/

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