我想将向量内的元素连接到父向量内的一些向量中。
example:
;; I have a vector [["1" "2" "3"] ["4" "5"]]
;; and another vector ["6" "7"]
我这样做了:
(map (fn [row]
(conj row ["6" "7"]))
[["1" "2" "3"] ["4" "5"]])
;;=> (["1" "2" "3" ["6" "7"]] ["4" "5" ["6" "7"]])
但我希望我的结果采用这种格式:
;;=> (["1" "2" "3" "6" "7"] ["4" "5" "6" "7"])
请为我指出正确的方向。
最佳答案
您不需要 conj
(将向量附加为元素)。您需要使用 concat
或 into
来代替:
(map (fn [row] (concat row ["6" "7"])) [["1" "2" "3"] ["4" "5"]])
=> (("1" "2" "3" "6" "7") ("4" "5" "6" "7"))
或更简洁地说:
(map #(into % ["6" "7"]) [["1" "2" "3"] ["4" "5"]])
=> (["1" "2" "3" "6" "7"] ["4" "5" "6" "7"])
(into
保留向量,因此它可能是您想要的。有关两者之间的差异,请参阅文档)。
关于dictionary - 同时将多个元素Conj成一个向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32510904/