खोज…


प्रेत के प्रकार के लिए केस का उपयोग करें: मुद्राएं

प्रेत प्रकार डेटा से निपटने के लिए उपयोगी होते हैं, जिसमें समान प्रतिनिधित्व होते हैं लेकिन तार्किक रूप से एक ही प्रकार के नहीं होते हैं।

एक अच्छा उदाहरण मुद्राओं के साथ काम कर रहा है। यदि आप मुद्राओं के साथ काम करते हैं तो आप कभी भी दो अलग-अलग मुद्राओं को जोड़ना नहीं चाहते हैं। 5.32€ + 2.94$ की परिणाम मुद्रा क्या होगी? यह परिभाषित नहीं है और ऐसा करने का कोई अच्छा कारण नहीं है।

इस का हल कुछ इस तरह दिख सकता है:

{-# LANGUAGE GeneralizedNewtypeDeriving #-}

data USD
data EUR

newtype Amount a = Amount Double
                 deriving (Show, Eq, Ord, Num)

GeneralisedNewtypeDeriving एक्सटेंशन हमें Amount टाइप के लिए Num प्राप्त करने की अनुमति देता है। जीएचसी Double का Num उदाहरण देता है।

अब यदि आप उदाहरण के लिए (5.0 :: Amount EUR) साथ यूरो राशियों का प्रतिनिधित्व करते हैं, तो आपने बिना माथे को पेश किए डबल टाइप अलग रखने की समस्या को हल कर दिया है। सामान की तरह (1.13 :: Amount EUR) + (5.30 :: Amount USD) परिणामस्वरूप एक प्रकार की त्रुटि होगी और आपको उचित रूप से मुद्रा रूपांतरण से निपटने की आवश्यकता होगी।

हैक्सेल विकी लेख में अधिक व्यापक प्रलेखन पाया जा सकता है



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow