在Clojure中为值向量添加键

时间:2014-01-18 19:19:25

标签: clojure

我有一个字符串向量(虽然可能是真的),我想创建一个新的映射条目向量,键是一些关键字。

例如,给定:

["foo" "bar" "baz"]

我想要

[{:message "foo"} {:message "bar"} {:message "baz"}]

应用此转换的最惯用方法是什么?

谢谢!

2 个答案:

答案 0 :(得分:6)

这是一个意见问题。一些选择:

 (into [] (for [x ["foo" "bar" "baz"]] {:message x}))

 (mapv hash-map (repeat :message) ["foo" "bar" "baz"])

 (mapv (partial assoc {} :message) ["foo" "bar" "baz"])

 (reduce #(conj % {:message %2}) [] ["foo" "bar" "baz"])

答案 1 :(得分:1)

我认为A.韦伯提出了一些非常好的选择 我的建议是为广大受众提供可读性:

 (mapv (fn[x] {:message x}) ["foo" "bar" "baz"])

另外,如果您不需要矢量,

 (map (fn[x] {:message x}) ["foo" "bar" "baz"])

对更多人来说是可读的。