我有一个定义为
的函数(defn a [] "Hello")
我有另一个变量b
(def b "a")
我想调用字符串值'b'表示的函数,即应该调用'a'。我怎么做?
答案 0 :(得分:10)
您需要将其转换为symbol
,然后转换为resolve
:
user=> ((resolve (symbol b)))
"Hello"
user=> ((-> b symbol resolve))
"Hello"
为了澄清 little ,这里有一个稍微详细的解决方案:
(let [func (-> b symbol resolve)]
(func arg1 arg2 arg3)) ; execute the function