Haskell:
सहयोगी अरेज़ का उपयोग करना
कैसे करें:
हास्केल में कुछ अन्य भाषाओं की तरह सहयोगी ऐरे सीधे नहीं मिलते, लेकिन यह एक शक्तिशाली मानक पुस्तकालय प्रदान करता है जिसे Data.Map
कहा जाता है, जो कि कुंजी-मान जोड़ों के साथ काम करने के लिए है। चलिए हम अपनी बाहें ऊपर उठाएं और देखें की इनका उपयोग कैसे करें!
पहले, सुनिश्चित करें की आप इसे आयात कर लें:
import qualified Data.Map as Map
एक मानचित्र बनाना सरल है। चलिए कुछ प्रोग्रामिंग भाषाओं और उनके पैराडाइम्स के साथ एक बनाते हैं:
let languages = Map.fromList [("Haskell", "Functional"), ("Python", "Imperative"), ("Prolog", "Logical")]
अब, हम हास्केल के पैराडाइम को कैसे प्राप्त करें?
Map.lookup "Haskell" languages
-- आउटपुट: Just "Functional"
एक नई भाषा जोड़ना आसान है:
let languagesUpdated = Map.insert "Rust" "Systems" languages
यदि हम सभी भाषाओं की सूची चाहते हैं तो Map.keys
का उपयोग करें:
Map.keys languagesUpdated
-- आउटपुट: ["Haskell","Python","Prolog","Rust"]
पैराडाइम्स की सूची के लिए Map.elems
का उपयोग करें:
Map.elems languagesUpdated
-- आउटपुट: ["Functional","Imperative","Logical","Systems"]
ये मूल क्रियाएँ अधिकांश प्रयोगों को कवर करनी चाहिए, लेकिन Data.Map
में और भी बहुत कुछ है!
गहन विवेचन
हास्केल की मानक पुस्तकालय में Data.Map
मॉड्यूल संतुलित द्विआधारी वृक्षों, विशेष रूप से AVL वृक्षों पर आधारित है। इस चयन से यह सुनिश्चित होता है कि मानचित्र पर अधिकांश क्रियाएँ, जैसे कि जोड़ना, हटाना, और खोजना, O(log n) समय में की जा सकती हैं, जहाँ n मानचित्र में तत्वों की संख्या है। यह कई प्रयोगों के लिए एक कुशल विकल्प है, हालांकि यह सभी परिदृश्यों के लिए सबसे तेज़ नहीं है।
एक ऐतिहासिक विशेषता भी है: Data.Map
प्रमुख बनने से पहले, हास्केल प्रोग्रामर अक्सर जोड़ों की सूचियों का उपयोग करके सहयोगी ऐरे का अनुकरण करते थे। हालांकि, ऐसी संरचनाओं पर क्रियाएँ O(n) समय में खोज के लिए होती हैं, जिससे Data.Map
प्रदर्शन के मामले में एक महत्वपूर्ण सुधार है।
अब, Data.Map
की कुशलता और उपयोगिता के बावजूद, यह हर काम के लिए सर्वोत्तम उपकरण नहीं है। अत्यधिक प्रदर्शन-संवेदनशील कार्यों के लिए, जहाँ यहाँ तक कि O(log n) समय में खोज धीमी है, या जहाँ कुंजियाँ हमेशा पूर्णांक मान होती हैं, सरणियाँ या हैश तालिकाएँ (Data.HashMap
के माध्यम से) O(1) पहुँच समय के साथ बेहतर प्रदर्शन प्रदान कर सकती हैं।
हास्केल ईकोसिस्टम विभिन्न आवश्यकताओं के लिए विभिन्न डेटा संरचनाओं की अनुमति देता है, और Data.Map
सहयोगी ऐरे के लिए एक उत्कृष्ट सामान्य-उद्देश्य विकल्प है, जिसमें उपयोग की आसानी, लचीलापन, और प्रदर्शन का संतुलन है।