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