स्पष्ट कारणों से निम्नलिखित कार्य नहीं करता है।क्लोजर में मोनॉयड प्रोटोकॉल कैसे लिखें?
(defprotocol Monoid
(mappend [a b])
(mzero []))
mzero
शून्य तर्क हैं, तो और शून्य तर्क के तरीकों की अनुमति नहीं है (या उसका कोई मतलब नहीं है) प्रोटोकॉल में। हास्केल या स्कैला में, जहां प्रेषण मूल्य-आधारित के बजाय प्रकार-आधारित है, यह कोई समस्या नहीं है।
क्लोजर में Monoid
प्रोटोकॉल को संकल्पना और लिखने का सही तरीका क्या होगा?
आपको मॉड्यूल की बजाय प्रोटोकॉल होने की आवश्यकता क्यों है? यदि आप विभिन्न कार्यान्वयन की उम्मीद कर रहे हैं तो एक विशेष उपयोग मामले में कार्यान्वयन की आवश्यकता है कि कैसे अनुमान लगाया जाएगा? (मुझे लगता है कि यह एक अच्छा सवाल है, मैं बस शामिल मुद्दे का पीछा करने की कोशिश कर रहा हूं)। –
@andrewcooke हास्केल infers उपयोग साइट पर स्थिर प्रकार के आधार पर infers। जिसे विधि कहा जाता है उसे स्थिर रूप से हल किया जाता है। –
@andrewcooke, आपके कथन के संदर्भ में मॉड्यूल का क्या अर्थ होगा? – missingfaktor