假设您有一个特殊的映射,其中每个键都可能代表一个 Clojure 核心函数:
{:inc 1 :dec 2 :identity "three"}
你会写什么来将每个键(作为一个函数)应用到它自己的值?
输出应该是这样的:
(2 1 "three")
此代码未能产生我所期望的结果:
user=> (def mm {:inc 1 :dec 2 :identity 3})
user=> (map #((symbol (first %)) (get % 1)) mm)
(nil nil nil)
用 resolve
包裹符号解决了这个问题:
(resolve (symbol (...)))