我试图确定一个宏在给定的参数是否是一个函数,像宏参数是函数吗?
(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?可以理解。任何帮助表示赞赏。