Clojure中单个向量的连接/合并向量

Sub*_*bal 3 clojure

我的地图功能给我输出:

([[:db/retract 1 :a 23] [:db/retract 1 :b 34]] [[:db/retract 2 :v 45] [:db/retract 2 :o 89]] [[:db/retract 4 :l 6]])
Run Code Online (Sandbox Code Playgroud)

但我想要这些像:

([[:db/retract 1 :a 23] [:db/retract 1 :b 34] [:db/retract 2 :v 45] [:db/retract 2 :o 89][:db/retract 4 :l 6]])
Run Code Online (Sandbox Code Playgroud)

我们应该如何将向量合并为单个向量?

slo*_*oth 5

给定

(def v '([[:db/retract 1 :a 23] [:db/retract 1 :b 34]] [[:db/retract 2 :v 45] [:db/retract 2 :o 89]] [[:db/retract 4 :l 6]])) 
Run Code Online (Sandbox Code Playgroud)

您可以使用

(apply concat v)
Run Code Online (Sandbox Code Playgroud)

要得到

([:db/retract 1 :a 23] [:db/retract 1 :b 34] [:db/retract 2 :v 45] [:db/retract 2 :o 89] [:db/retract 4 :l 6])
Run Code Online (Sandbox Code Playgroud)

如果您确实需要列表中的内部向量,请使用

`(~(vec (apply concat v)))
Run Code Online (Sandbox Code Playgroud)

要得到

([[:db/retract 1 :a 23] [:db/retract 1 :b 34] [:db/retract 2 :v 45] [:db/retract 2 :o 89] [:db/retract 4 :l 6]])
Run Code Online (Sandbox Code Playgroud)