更多的是因为好奇心,其他任何东西(但是期望它偶尔会成为性能调优的有用技巧),是否可以使用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