我試圖確定一個宏在給定的參數是否是一個函數,像宏參數是函數嗎?
(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?可以理解。任何幫助表示讚賞。