के संबंध में चलो एक फ़ंक्शन को परिभाषित करता है, जिसमें दो पैरामीटर होते हैं - मानचित्र और एक कुंजी। कुंजी नक्शा पैरामीटर अपघटनdefn vs। Decomposition
(defn myfunc [{v k} k]
v)
से संदर्भित है जब मैं फोन:
(myfunc {:a 10} :a)
यह आश्चर्य की बात की उम्मीद उत्पादन परिणाम: 10
दें में इसी प्रकार के बात:
(let [{v k} {:a 10} k :a] v)
विफल रहता है, क्योंकि के पर परिभाषित नहीं किया गया है पल, जब पहले भाग का मूल्यांकन किया जाता है।
मेरा प्रश्न है: में अपघटन की तुलना में फ़ंक्शन पैरामीटर के अंदर अपघटन अलग-अलग व्यवहार क्यों करते हैं अभिव्यक्तियों को छोड़ दें?
अब सवाल है, एक बग के रूप में या एक सुविधा के रूप में विचार किया जाना है, तो इस तरह के अंतर गई है ... – aav
मैं कहूंगा अगर कोई जानता है कि कार्य के शरीर के अंदर विनाश होता है तो यह आश्चर्यजनक नहीं है, इसलिए एक बग नहीं है। लेकिन मुझे लगता है कि इस तथ्य को उचित स्थानों में बेहतर समझाया जाना चाहिए - अगर मुझे सही ढंग से क्लोजर की खुशी याद है, उदाहरण के लिए, वास्तव में इसमें शामिल नहीं होता है। – Paul
दिलचस्प क्या है (लेकिन आश्चर्य की बात नहीं है) कि उसकी इच्छा काम नहीं करेगी: (deff myfunc [{v k} {k: k1}] v) – aav