में अपरिभाषित लंबाई की सूचियों के लिए बाइनरी सीरियलाइजेशन मैं डेटा का उपयोग कर रहा हूं। फाइलों को डेटा को क्रमबद्ध करने के लिए। मेरे आवेदन में मैं इन फ़ाइलों में वृद्धिशील रूप से आइटम जोड़ता हूं। दो सबसे लोकप्रिय धारावाहिक पैकेज, बाइनरी और अनाज, दोनों क्रमबद्ध सूची सूची के बाद क्रमबद्ध सूची के रूप में सूचीबद्ध हैं। इस वजह से, मैं अपनी धारावाहिक फ़ाइलों में शामिल नहीं हो सकता। मैं वर्तमान में पूरी फाइल में पढ़ता हूं, सूची को deserialize, सूची में संलग्न, सूची को फिर से क्रमबद्ध, और फ़ाइल में वापस लिखना। हालांकि, मेरा डेटा सेट बड़ा हो रहा है और मैं स्मृति से बाहर निकलना शुरू कर रहा हूं। मैं शायद कुछ जगह हासिल करने के लिए अपने डेटा संरचनाओं को अनबॉक्सिंग कर सकता हूं, लेकिन वह दृष्टिकोण स्केल नहीं करता है।हास्केल
प्रारंभिक गणना बदलने के लिए फ़ाइल प्रारूप के साथ एक समाधान नीचे और गंदा होना होगा, फिर बस मेरे तत्वों को संलग्न करें। लेकिन यह बहुत संतोषजनक नहीं है, अबास्ट्रक्शन को तोड़ने के परिणामस्वरूप फ़ाइल स्वरूप में भविष्य में बदलावों के प्रति संवेदनशील होने का उल्लेख नहीं करना चाहिए। Iteratees/Enumerators यहाँ एक आकर्षक विकल्प के रूप में दिमाग में आते हैं। मैंने उन्हें एक बाइनरी क्रमबद्धता के साथ संयोजन करने वाली लाइब्रेरी की तलाश की, लेकिन कुछ भी नहीं मिला। किसी को पता है कि यह पहले से ही किया गया है? यदि नहीं, तो इसके लिए एक पुस्तकालय उपयोगी होगा? या क्या मैं कुछ न कुछ भूल रहा हूं?
क्या आप बाइनरी के लिए स्ट्रीमिंग उदाहरण लिख सकते हैं? एक चंक-वार (उत्सुक) एन्कोडर लिखना अपेक्षाकृत आसान है, जो एक समय में * एन * तत्वों के सेट लिखता है। –
ओह, मैं इस बात से असहमत नहीं हूं कि यह काफी सरल है। मैं मुख्य रूप से जानना चाहता हूं कि यह पहले से ही किया जा चुका है या नहीं। यदि नहीं, तो क्या मौजूदा abstractions या टाइप कक्षाएं हैं जिन्हें मुझे शुरू करना चाहिए? – mightybyte
ऐसा कोई नहीं है जिसे मैं जानता हूं। यद्यपि आपको हैकेज पर तलाशने योग्य फ़ाइल एपीआई की तलाश में भाग्य हो सकता है। –