假设我有一张 map :
{:name "foo"
:age "bar"}
还有一个
{:name (fn [val] (println val))
:age (fn [val] (= val "bar"))}
我想将第二个 map 上由 :name
键控的函数应用到第一个 map ,该函数也由 :name
键控以及由 :age 键控的函数
到第一个由 :age
键控的 map 。如何用 Clojure 方式做到这一点?
最佳答案
您可以使用合并与
(def m1 {:name "foo"
:age "bar"})
(def m2 {:name (fn [val] (println val))
:age (fn [val] (= val "bar"))})
user=> (merge-with #(%1 %2) m2 m1)
foo
{:name nil, :age true}
关于clojure - 根据键将映射中的函数应用于映射中的每个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22359975/