में प्राथमिकता कतार कार्यान्वयन की तुलना हास्केल के लिए ऑफ-द-शेल्फ उपलब्ध कई प्राथमिकता कतार कार्यान्वयन प्रतीत होती है। उदाहरण के लिए, वहाँ है:हास्केल
(hackage पर pure-priority-queue-0.14 में) Data.PriorityQueue.FingerTree
- (hackage पर heap-1.0.0 में) Data.Heap
जो जहाँ से एक तुच्छता प्राथमिकता कतारों कर सकते हैं पूरी तरह कार्यात्मक ढेर डाटा संरचनाओं को परिभाषित करता है भी नहीं है। । वहाँ भी
- Data.Heap
- Data.MeldableHeap (hackage पर heaps-0.2 में) (hackage पर meldable-heap-2.0.3 में) कर रहे हैं
जो दोनों Brodal/Okasaki डेटा का उपयोग कर पूरी तरह कार्यात्मक meldable ढेर लागू संरचना, जो मुझे विश्वास है कि गैर-शुद्ध कार्यात्मक भूमि में द्विपदीय ढेर डेटा संरचना के समान है।
(ओह, और वहाँ भी है
- Data.PriorityQueue (hackage पर प्राथमिकता-पंक्ति-0.2.2) में
समारोह जिसका मेरे लिए स्पष्ट नहीं है, लेकिन जो संबंधित प्रतीत हो रहा है एक मोनैड से जुड़ी प्राथमिकता कतारों का निर्माण, और जो किसी भी तरह से डेटा.मैप के शीर्ष पर बनाया गया प्रतीत होता है। इस सवाल में, मैं पूरी तरह कार्यात्मक प्राथमिकता कतारों से चिंतित हूं, इसलिए मुझे लगता है कि प्राथमिकता-कतार-0.2.2 पैकेज अप्रासंगिक है लेकिन अगर मैं गलत हूं तो मुझे सही करें!)
मुझे एक परियोजना के लिए एक शुद्ध कार्यात्मक प्राथमिकता कतार डेटा संरचना की आवश्यकता है जिसे मैं बना रहा हूं। मैं सोच रहा था कि कोई भी ज्ञान के किसी भी शब्द प्रदान कर सकता है क्योंकि मैं हैकेज द्वारा प्रदत्त embarrassment of riches के बीच निर्णय लेता हूं। विशेष रूप से:
- मान लीजिए कि मैं परंपरागत प्राथमिकता कतार सम्मिलन और निकालने-न्यूनतम संचालन के अलावा पूरी तरह से कार्यात्मक/अपरिवर्तनीय प्रस्तुति के अलावा सुविधाओं को अलग करना चाहता हूं। ऊपर वर्णित संकुल के पेशेवरों और विपक्ष क्या हैं? क्या किसी को भी 'क्रोध में' उनमें से किसी का उपयोग करने का अनुभव है? प्रदर्शन में ट्रेडऑफ क्या हैं? विश्वसनीयता? दूसरों द्वारा अधिक व्यापक रूप से उपयोग किया जाता है? (उन लोगों का उपयोग करना मेरे कोड को दूसरों के पढ़ने के लिए आसान बना सकता है, क्योंकि वे लाइब्रेरी से परिचित होने की अधिक संभावना रखते हैं।) क्या उनके बीच कोई निर्णय लेने से पहले मुझे कोई और चीज जाननी चाहिए?
- यदि मैं भी प्राथमिकता कतारों के कुशल विलय करना चाहता हूं, तो फिर क्या? (मैं इस परियोजना के लिए नहीं हूं, लेकिन मैंने इसे जोड़ने का विचार किया लेकिन एसओ प्रश्न भविष्य के पाठकों के लिए अधिक उपयोगी बना देगा।)
- क्या वहां कोई अन्य प्राथमिकता कतार पैकेज है जो मुझे याद आया?
"उंगली के पेड़, एक डेटा संरचना जिसके साथ मैं अपरिचित हूं" मैं कागज को पढ़ने की सलाह देता हूं http://www.soi.city.ac.uk/~ross/papers/FingerTree.html: यह बहुत है स्पष्ट रूप से लिखा गया है और डेटा संरचना व्यापक रूप से उपयोगी है। प्राथमिकता कतार विशेष रूप से अन्य अनुप्रयोगों के बीच चर्चा की जाती है। –
मैं 'प्राथमिकता-कतार-0.2.2' का लेखक हूं - यह हास्केल में मेरे शुरुआती प्रयासों में से एक था और जब मैंने वास्तव में उस संस्करण के साथ किसी भी समस्या के बारे में कभी नहीं पाया या अधिसूचित नहीं किया है, तो यह लगभग निश्चित रूप से नहीं है दूसरों के रूप में अच्छी तरह से सोचा। इसका उद्देश्य वास्तव में आईओआरएफ, एसटीआरआईफ़, एट अल के साथ उपयोग के लिए है। इसका उपयोग "शुद्ध" इंटरफ़ेस के लिए राज्य/राज्य टी में किया जा सकता है, लेकिन वास्तव में ऐसा करने की परेशानी के लायक नहीं है जब वहां कई अन्य विकल्प हैं (केवल सादे "मानचित्र" सहित, जिसमें 'मिनीव्यू' और 'अधिकतम दृश्य' है 'कार्य)। Monad.Reader आलेख का उल्लेख करने के लिए – mokus