मैं एक समारोह जो एक समारोह और एक नंबर लेता है और संख्या पर समारोह के आवेदन देता है, और एक घन समारोह है:clojure में तर्क के रूप में कार्य गुजर
(defn something [fn x]
(fn x))
(defn cube [x]
(* x x x))
जब मैं समारोह फोन के रूप में निम्नानुसार यह काम करता है:
(something cube 4)
लेकिन यह एक त्रुटि देता है:
(something Math/sin 3.14)
बहरहाल, यह काम करता है:
(something #(Math/sin %) 3.14)
स्पष्टीकरण क्या है?
धन्यवाद, अब मैं समझता हूं। वास्तव में जब मैं इस भ्रम उत्पन्न हुआ मैक्रोज़ को समझने की कोशिश कर रहा था। क्या आप मुझे यह लाइन समझा सकते हैं? - चूंकि मैक्रोज़ अपने तर्कों का मूल्यांकन नहीं करते हैं, इसलिए अनगिनत फ़ंक्शन नाम उन्हें पास किए जा सकते हैं और तर्कों के साथ कार्यों को कॉल किया जा सकता है। फ़ंक्शन परिभाषाएं ऐसा नहीं कर सकती हैं और इसके बजाय अनाम कार्यों को पारित किया जाना चाहिए जो कार्यों को कॉल लपेटें। ' – Pranav
मेरा भ्रम यह है कि मैंने स्पष्ट रूप से एक अनूठा फ़ंक्शन 'क्यूब' को 'कुछ' और पारित किया है। – Pranav
क्या आप टिप्पणी के बजाए इसे वास्तविक एसओ सवाल के रूप में पूछ सकते हैं? यहां स्वरूपण बहुत कमजोर है, और मैं वास्तव में एक पूरी तरह से असंबंधित प्रश्न में "दूसरा जवाब" जोड़ना नहीं चाहता हूं। – amalloy