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)))
'apply'関数を見ましたか? http://clojuredocs.org/clojure_core/clojure.core/apply – edbond
は実行時に動的に適用され、コンパイル時にインライン展開を実行するものを探しています.... – mikera
'(read-string(clojure.repl/source-fn \ 'my-function))'は良い出発点のようです! – vemv