Haskell Language
प्रेत प्रकार
खोज…
प्रेत के प्रकार के लिए केस का उपयोग करें: मुद्राएं
प्रेत प्रकार डेटा से निपटने के लिए उपयोगी होते हैं, जिसमें समान प्रतिनिधित्व होते हैं लेकिन तार्किक रूप से एक ही प्रकार के नहीं होते हैं।
एक अच्छा उदाहरण मुद्राओं के साथ काम कर रहा है। यदि आप मुद्राओं के साथ काम करते हैं तो आप कभी भी दो अलग-अलग मुद्राओं को जोड़ना नहीं चाहते हैं। 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)
परिणामस्वरूप एक प्रकार की त्रुटि होगी और आपको उचित रूप से मुद्रा रूपांतरण से निपटने की आवश्यकता होगी।
हैक्सेल विकी लेख में अधिक व्यापक प्रलेखन पाया जा सकता है