dictionary - 同时将多个元素Conj成一个向量

标签 dictionary vector clojure

我想将向量内的元素连接到父向量内的一些向量中。

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 (将向量附加为元素)。您需要使用 concatinto 来代替:

(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/

相关文章:

python - 一个类似于 dict 的 python 类

c++ - c2955 错误 - 使用类模板需要参数列表

r - 如何在 R 中进行集合乘法(笛卡尔积)

recursion - Clojure - 递归展平嵌套 map

algorithm - 如何从字符数组中查找单词?

android - 输入文本时如何抑制字典提示?

matlab - 在向量上查找另一个特定数字之前的数字

clojure - 如何使用 leiningen 引用其他文件中的函数?

clojure - 为测试环境清除数据数据库?

android - 如何在android中的 map 上绘制叠加层?