ट्रैक
/
Roc
Roc
/
अभ्यास
/
समानांतर अक्षर आवृत्ति
समानांतर अक्षर आवृत्ति

समानांतर अक्षर आवृत्ति

मध्यम

निर्देश

समानांतर गणना की मदद से टेक्स्ट में अक्षरों की आवृत्ति गिनिए।

समानांतरता का मतलब है उन कामों को साथ-साथ करना जिन्हें एक के बाद एक करके भी किया जा सकता है। इसका एक आम उदाहरण अक्षरों की आवृत्ति गिनना है। टेक्स्ट की सूची में हर अक्षर की कुल आवृत्ति निकालने के लिए समानांतरता अपनाइए।

समानांतर में अक्षरों की गिनती

अक्षरों की गिनती कीजिए, केस और गैर-अक्षरों को अनदेखा करते हुए, और ऐसी डिक्शनरी लौटाइए जिसमें हर छोटे अक्षर के सामने उसकी गिनती हो। अक्षरों को Unicode स्केलर वैल्यू मानिए। Unicode नॉर्मलाइज़ेशन ज़रूरी नहीं है।

दिए गए items पर एक प्योर task फंक्शन लगाने के लिए roc-parallel प्लेटफॉर्म के pf.Parallel.map!(items, { workers, task }) का इस्तेमाल कीजिए। यह काम कई थ्रेड पर एक साथ समानांतर रूप से चलता है (थ्रेड की संख्या workers से तय होती है)। जब सभी items पर काम पूरा हो जाता है, तो परिणाम इनपुट के क्रम में लौटाए जाते हैं। आपको सिर्फ ParallelLetterFrequency.roc में बदलाव करना है।

टेस्ट चलाना

बाकी ज़्यादातर अभ्यासों से अलग, यह अभ्यास इफेक्टफुल फंक्शन इस्तेमाल करता है। टेस्ट roc test के बजाय roc --opt=speed parallel-letter-frequency-test.roc से चलाइए। Roc कोड जो भी एरर लौटाता है, प्लेटफॉर्म उसे आम फॉर्मेट से अलग एक फॉर्मेट में बताता है।

आप bank-account अभ्यास भी देखना चाहेंगे, जो कॉन्करेंसी का एक अलग पहलू दिखाता है: साझा स्थिति पर अपडेट सुरक्षित तरीके से लागू करना।

GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Roc Exercism

समानांतर अक्षर आवृत्ति शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और Roc को 139 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।

समानांतर अक्षर आवृत्ति को गहराई से जानिए!

हम कंकरेंसी और समानांतरता के बीच के अंतर पर नज़र डालते हैं, और देखते हैं कि JavaScript, Go, Elixir तथा Rust जैसी भाषाएँ कौन-कौन से अलग-अलग तरीके अपनाती हैं।