के साथ एक फ़ंक्शन को रेखांकित करना और कुछ और उत्सुकता से अधिक (लेकिन अपेक्षा के साथ कि यह कभी-कभी प्रदर्शन ट्यूनिंग के लिए उपयोगी चाल हो सकता है), क्या क्लोजर मैक्रोज़ को मौजूदा फ़ंक्शन को "इनलाइन" करने के लिए उपयोग करना संभव है?क्लोजर मैक्रोज़
यानी मैं की तरह कुछ करने में सक्षम होना चाहते हैं:
(defn my-function [a b] (+ a b))
(defn add-3-numbers [a b c]
(inline (my-function
a
(inline (my-function
b
c)))))
और यह उत्पादन (संकलन समय पर) है ठीक उसी समारोह के रूप में अगर मैं जोड़ अपने आप को इस तरह के रूप inlined था,:
(defn add-3-numbers [a b c]
(+ a (+ b c)))
क्या आपने 'आवेदन' फ़ंक्शन देखा था? http://clojuredocs.org/clojure_core/clojure.core/apply – edbond
रनटाइम पर गतिशील रूप से काम करता है, मैं कुछ ऐसा ढूंढ रहा हूं जो संकलन समय पर इनलाइनिंग करता है .... – mikera
'(रीड-स्ट्रिंग (clojure.repl/स्रोत-एफएन \ 'मेरा-फ़ंक्शन)) 'एक अच्छा प्रारंभिक बिंदु की तरह लगता है! – vemv