如何在clojure中将列表转换为映射
我有以下清单如何在clojure中将列表转换为映射,clojure,Clojure,我有以下清单 ({:Col1 {:type varchar :nullable true}} {:Col2 {:type varchar :nullable true}} {:Col3 {:type varchar :nullable false}}) 并希望转换为以下内容 {:Col3 {:type varchar, :nullable false}, :Col1 {:type varchar, :nullable true}, Col2 {:type varchar, :nullable
({:Col1 {:type varchar :nullable true}} {:Col2 {:type varchar :nullable true}} {:Col3 {:type varchar :nullable false}})
并希望转换为以下内容
{:Col3 {:type varchar, :nullable false}, :Col1 {:type varchar, :nullable true}, Col2 {:type varchar, :nullable true}}
我正在使用以下代码
(def a '({:Col1 {:type varchar :nullable true}} {:Col2 {:type varchar :nullable true}} {:Col3 {:type varchar :nullable false}}))
(apply hash-map (flatten (map (comp flatten seq) a)))
但是有更好的解决方案吗?另一种方法是使用:
另一种方法是使用:
另一种方法是使用:
另一种方法是使用:
除了Symfrog的答案外,此选项同样简短,但可能更容易理解:
(apply merge a)
其中,a
定义为一系列地图,如您的问题所示
你也可以使用
(reduce conj a)
这大致就是Clojure源代码中的情况。除了Symfrog的答案外,此选项同样简短,但可能更容易理解:
(apply merge a)
其中,a
定义为一系列地图,如您的问题所示
你也可以使用
(reduce conj a)
这大致就是Clojure源代码中的情况。除了Symfrog的答案外,此选项同样简短,但可能更容易理解:
(apply merge a)
其中,a
定义为一系列地图,如您的问题所示
你也可以使用
(reduce conj a)
这大致就是Clojure源代码中的情况。除了Symfrog的答案外,此选项同样简短,但可能更容易理解:
(apply merge a)
其中,a
定义为一系列地图,如您的问题所示
你也可以使用
(reduce conj a)
这大概就是Clojure来源中的情况