जाहिर है, आप एक रिकार्ड निर्माता के साथ लागू फोन नहीं कर सकते हैं:क्लोजर रिकॉर्ड कन्स्ट्रक्टर प्रथम श्रेणी नहीं है?
(defrecord Foo. [id field])
(apply Foo. my-list)
क्योंकि यह फू की उम्मीद नहीं है पढ़ने के समय में विफल रहता है। उस स्थान पर।
(make-foo [id field] (Foo. id field))
जो निश्चित रूप से apply'ed जा सकता है:
केवल स्पष्ट तरीके को मैं के बारे में सोच सकता है एक कारखाने समारोह को जोड़ने के लिए किया गया था।
क्या मुझे कुछ याद आ रही है? मैं इसे सी #/जावा से उम्मीद करता हूं लेकिन सोचा था कि यह क्लोजर में थोड़ा निराशाजनक था ...
यह एक विषमता का एक सा है इस बात से सहमत है, लेकिन व्यक्तिगत रूप से यह एक समस्या कभी नहीं रहा है के रूप में मैं कारखाने कार्यों बल्कि उपयोगी पाते हैं - इस पैटर्न अधिक बेवकूफ क्लोजर उपयोग का समर्थन करता है, आपको प्री-प्रोसेसिंग पैरामीटर में अधिक लचीलापन देता है, विभिन्न प्रयोजनों के लिए कन्स्ट्रक्टर के विभिन्न सेटों की अनुमति देता है, अबास्ट्रक्शन इत्यादि की एक परत प्रदान करता है – mikera