我正在尝试确定宏中的给定参数是否是函数,例如
(defmacro call-special? [a b]
(if (ifn? a)
`(~a ~b)
`(-> ~b ~a)))
这样以下两个调用都会生成“Hello World”
(call-special #(println % " World") "Hello")
(call-special (println " World") "Hello")
但是,我不知道如何将“a”转换为 ifn? 能理解。任何帮助表示赞赏。