为 Clojure 中的列表中的每个地图关联新键

Odi*_*din 1 clojure

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

(defn some-function [element] "some computation over element")
Run Code Online (Sandbox Code Playgroud)

是否有一种为地图列表中的每个元素关联一个新键的惯用方法,其中新键的值由某个函数计算?

这是我天真的方法:

(map 
  (fn [element] (assoc element :newkey (some-function element)))
  [{:a "map 1"} {:a "map 2"}])
Run Code Online (Sandbox Code Playgroud)

Leo*_*tny 5

你的代码看起来不错。

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

(map 
  #(assoc % :newkey (some-function %))
  [{:a "map 1"} {:a "map 2"}])
Run Code Online (Sandbox Code Playgroud)