Haskell Language
कंटेनर - Data.Map
खोज…
निर्माण
हम इस तरह से tuples की एक सूची से एक नक्शा बना सकते हैं:
Map.fromList [("Alex", 31), ("Bob", 22)]
एक मान के साथ एक नक्शा भी बनाया जा सकता है:
> Map.singleton "Alex" 31
fromList [("Alex",31)]
empty फंक्शन भी है।
empty :: Map k a
Data.Map विशिष्ट सेट संचालन जैसे कि union , difference और intersection का भी समर्थन करता है।
अगर खाली है तो जाँच
किसी दिए गए नक्शे के खाली होने पर जाँच करने के लिए हम null फ़ंक्शन का उपयोग करते हैं:
> Map.null $ Map.fromList [("Alex", 31), ("Bob", 22)]
False
> Map.null $ Map.empty
True
मान ढूँढना
नक्शे पर कई क्वेरी संचालन हैं।
member :: Ord k => k -> Map ka -> Bool पैदावार True अगर टाइप k की कुंजी Map ka :
> Map.member "Alex" $ Map.singleton "Alex" 31 True > Map.member "Jenny" $ Map.empty False
notMember समान है:
> Map.notMember "Alex" $ Map.singleton "Alex" 31 False > Map.notMember "Jenny" $ Map.empty True
यदि आप कुंजी मौजूद नहीं हैं, तो आप findWithDefault :: Ord k => a -> k -> Map ka -> a भी उपयोग कर सकते हैं:
Map.findWithDefault 'x' 1 (fromList [(5,'a'), (3,'b')]) == 'x' Map.findWithDefault 'x' 5 (fromList [(5,'a'), (3,'b')]) == 'a'
तत्वों को सम्मिलित करना
तत्वों को सम्मिलित करना सरल है:
> let m = Map.singleton "Alex" 31
fromList [("Alex",31)]
> Map.insert "Bob" 99 m
fromList [("Alex",31),("Bob",99)]
तत्वों को हटाना
> let m = Map.fromList [("Alex", 31), ("Bob", 99)]
fromList [("Alex",31),("Bob",99)]
> Map.delete "Bob" m
fromList [("Alex",31)]
मॉड्यूल आयात कर रहा है
containers पैकेज में Data.Map मॉड्यूल एक Map संरचना प्रदान करता है जिसमें सख्त और आलसी दोनों कार्यान्वयन होते हैं।
Data.Map का उपयोग करते Data.Map , आम तौर पर पहले से परिभाषित कार्यों के साथ झड़पों से बचने के लिए यह योग्य होता है।
import qualified Data.Map as Map
तो हम Map साथ Map. फंक्शन कॉल को प्रीपेन्ड करेंगे Map. , उदा
Map.empty -- give me an empty Map
मोनॉयड उदाहरण
Map kv निम्नलिखित शब्दार्थ के साथ एक मोनॉइड उदाहरण प्रदान करता है:
-
memptyरिक्तMap, अर्थातMap.emptyके समान -
m1 <> m2के बाएं पक्षपातपूर्ण संघ हैm1औरm2, यानी अगर किसी भी कुंजी में दोनों मौजूद हैm1औरm2, फिर से मूल्यm1के लिए चुना जाता हैm1 <> m2। इस आपरेशन भी उपलब्ध बाहर हैMonoidके रूप में उदाहरण केMap.union।