Subal
Subal

Reputation: 98

Concatenate/Merge vectors in single vector in clojure

My map function giving me output:

([[: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]])

But I want these like :

([[: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]])

How we should merge the vectors in single vector?

Upvotes: 4

Views: 3497

Answers (1)

sloth
sloth

Reputation: 101042

Given

(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]])) 

you can use

(apply concat v)

to get

([: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])

If you really need the inner vector inside a list, use

`(~(vec (apply concat v)))

to get

([[: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]])

Upvotes: 6

Related Questions