क्या कक्षाओं में बाधाओं को लागू करने के लिए कोई तरीका है (कोई रास्ता)?क्या हास्केल के प्रकार वर्गों में बाधाओं को लागू करने का कोई तरीका है?
मैं जो बात कर रहा हूं उसके उदाहरण के रूप में, मान लीजिए कि मैं एक समूह को एक प्रकार के वर्ग के रूप में कार्यान्वित करना चाहता हूं।
class Group a where
product :: a -> a -> a
inverse :: a -> a
identity :: a
लेकिन उन किसी भी काम करता है नहीं कर रहे हैं, लेकिन वे कुछ बाधाओं से संबंधित होना चाहिए: तो एक प्रकार का एक समूह है, तो वहाँ तीन कार्य हैं होगा। उदाहरण के लिए:
product a identity = a
product a (inverse a) = identity
inverse identity = identity
आदि ...
वहाँ वर्ग की परिभाषा में बाधा इस तरह लागू करने के लिए इतना है कि किसी भी घटना स्वचालित रूप से इसे वारिस होगा कोई तरीका है? - वास्तव में, सी 2 के साथ ही संभव समूह है
data C2 = E | C
instance Group C2 where
identity = E
inverse C = C
यह दो परिभाषा विशिष्ट निर्धारित करता है सी 2 (बाधाओं से ऊपर सभी संभव आपरेशनों को परिभाषित: एक उदाहरण के रूप में, मैं सी 2 समूह, द्वारा परिभाषित लागू करना चाहते हैं मान लें कि बाधाओं के कारण दो तत्व)। क्या यह काम करने का कोई तरीका है?
(एर, 'उलटा सी = सी', निश्चित रूप से?) – dave4420
हाँ, –
पर ध्यान देने के लिए धन्यवाद उन बाधाओं को आमतौर पर * कानून * उदाहरण, मोनाड कानून कहा जाता है। – mb14