मान लीजिए के आधार पर मैं कुछ सामान्य समारोहप्रकार
genericFunc :: a -> b
genericFunc x = doSomeHardWork
है एक सामान्य समारोह के लिए एक अलग समारोह शरीर प्रदान करें लेकिन एक विशेष प्रकार के लिए, वहाँ एक बहुत अधिक कारगर तरीका है कि genericFunc
किया जा सकता है है।
genericFunc :: ParticularType -> b
genericFunc x = doSomeEasyWork
क्या एक ही genericFunc
में इन दोनों समारोह निकायों गठबंधन करने के लिए सबसे अच्छा तरीका है इस तरह के है, कि जब ParticularType
पर इस्तेमाल किया, यह doSomeEasyWork
, लेकिन जब अन्य प्रकार पर इस्तेमाल किया, यह doSomeHardWork
जाएगा? मैं विशेष रूप से एक अलग नाम, या विभिन्न मॉड्यूल का उपयोग करने का विकल्प छोड़ रहा हूँ।
मेरा मानना है कि यह एक टाइपक्लास के साथ किया जा सकता है, लेकिन मुझे भाषा प्रमाओं का उपयोग करने वाले समाधानों में अधिक दिलचस्पी है। मेरे पास एक अस्पष्ट इंकलिंग है कि यह भाषा प्रागम्स के साथ किया जा सकता है लेकिन मुझे नहीं पता कि कैसे। यदि आप इन दृष्टिकोणों, और/या किसी अन्य संभावित दृष्टिकोण की तुलना और तुलना करते हैं तो बोनस अंक।
थोड़ा इस सवाल के बारे में सोच से प्रेरित: उदाहरण के लिए, फिर से लिखने संकलक एक समारोह इनलाइन करने का फैसला करता है कि क्या पर निर्भर हो सकता [अगर कुछ एक सूची नहीं है] (http://stackoverflow.com/questions/ 8463777/if-something-is-a-list-in-haskell) –