मैं लगातार अनुक्रमिक डेटास्ट्रक्चर की तलाश में हूं जो कुशल यादृच्छिक प्रविष्टियों और हटाने को अनुमति देता है। मैं निम्नलिखित कार्यान्वयन पाया:क्लोजर उंगली के पेड़ और flexvec
- clojure.data.finger-tree (गिना-डबल-सूची कार्यान्वयन)
- wgjo.data.cljs
- flexvec
चूंकि clojure.data.finger-पेड़ में ज्यादा गतिविधि नहीं था पिछले दो सालों से, और अन्य अपेक्षाकृत नए हैं, मैं सोच रहा था कि क्या किसी ने उत्पादन में इनमें से किसी का उपयोग करने का प्रयोग किया है, और क्या ऐसे विकल्प हैं जिन्हें मैंने अनदेखा किया है।
क्लोजर के पर्सिस्टेंट वेक्टर पर्याप्त क्यों नहीं हैं? क्या आप अपने उपयोग के मामले में विवरण जोड़ सकते हैं? – ordnungswidrig
@ordnungswidrig, मेरे उपयोग के मामले के आपके अनुरोध के जवाब में: मेरे पास एक दस्तावेज़ है जो एक सरणी के रूप में दर्शाया गया है। घटनाओं के जवाब में, दस्तावेज को दस्तावेज़ के भीतर किसी विशेष ऑफसेट पर सम्मिलित और हटा दिया जाता है। आमतौर पर अपेक्षाकृत बड़े दस्तावेज़ में केवल एक या दो आवेषण या हटाए जाएंगे। क्लोजर के लगातार वेक्टर कार्यान्वयन के साथ मुझे प्रत्येक घटना पर दस्तावेज़ को फिर से बनाना होगा। एक उंगली के पेड़ के साथ, उदाहरण के लिए, मैं संशोधित ऑफसेट के साथ दस्तावेज़ को विभाजित और शामिल करने में सक्षम होगा। – Inshallah
संरचनात्मक शेयरिंग के कारण यह एक बड़ी लागत लागू नहीं करना चाहिए। या आपको विभाजित भागों तक पहुंच की आवश्यकता है, उदा। डिस्क दृढ़ता पर अनुकूलित करने के लिए? – ordnungswidrig