将新密钥关联到Clojure中列表中的每个地图

时间:2014-03-30 07:02:50

标签: clojure

给定一些函数来计算基于地图给出的值

(defn some-function [element] "some computation over element")

是否存在为地图列表中的每个元素关联新密钥的自动方式,其中新密钥的值由某个函数计算?

这是我的天真方法:

(map 
  (fn [element] (assoc element :newkey (some-function element)))
  [{:a "map 1"} {:a "map 2"}])

2 个答案:

答案 0 :(得分:4)

您的代码看起来很好。

但您可以考虑使用#()特殊宏而不是自己创建匿名函数:

(map 
  #(assoc % :newkey (some-function %))
  [{:a "map 1"} {:a "map 2"}])

答案 1 :(得分:0)

你的“幼稚”方法正是我期望看到的。