更多的是因爲好奇心,其他任何東西(但是期望它偶爾會成爲性能調優的有用技巧),是否可以使用Clojure宏來「內聯」現有函數?使用Clojure宏內聯函數
即我希望能夠做一些事情,如:
(defn my-function [a b] (+ a b))
(defn add-3-numbers [a b c]
(inline (my-function
a
(inline (my-function
b
c)))))
而且有它產生(在編譯時)功能完全一樣,如果我已經內聯的補充自己,如:
(defn add-3-numbers [a b c]
(+ a (+ b c)))
你看過「應用」功能嗎? http://clojuredocs.org/clojure_core/clojure.core/apply – edbond 2010-12-18 17:02:45
在運行時動態地應用工作,我正在尋找在編譯時執行內聯的東西.... – mikera 2010-12-20 12:31:44
'(read-string(clojure.repl/source-fn \'my-function))''看起來是一個很好的起點! – vemv 2013-01-14 00:48:49