احسب تكرار الحروف في النصوص باستخدام الحوسبة المتوازية.
التوازي يعني إنجاز مهام على التوازي يمكن أيضًا إنجازها بشكل تسلسلي. مثال شائع هو حساب تكرار الحروف. استخدم التوازي لحساب التكرار الكلي لكل حرف في مصفوفة من النصوص.
أحصِ الحروف، متجاهلًا حالة الأحرف وما ليس حرفًا، وأرجع قاموسًا يربط الحروف الصغيرة بعدد مرات ظهورها. تعامل مع الحروف كقيم عددية قياسية في Unicode؛ ولا يلزم التطبيع.
استخدم pf.Parallel.map!(items, { workers, task }) من منصة roc-parallel لمعالجة العناصر items المعطاة باستخدام دالة task نقية، على التوازي عبر عدة خيوط (تُحدَّد بـ workers).
وتُرجَع النتائج بترتيب المدخلات بعد معالجة كل العناصر.
كل ما عليك هو تعديل ParallelLetterFrequency.roc.
على خلاف معظم التمارين الأخرى، يستخدم هذا التمرين دوال ذات تأثيرات جانبية.
شغّل الاختبارات باستخدام roc --opt=speed parallel-letter-frequency-test.roc بدلًا من roc test.
وأي خطأ يُرجعه كود Roc تُبلِّغ عنه المنصة بصيغة مختلفة عن المعتاد.
قد ترغب أيضًا في إلقاء نظرة على تمرين bank-account، الذي يستكشف جانبًا مختلفًا من التزامن: تطبيق التحديثات بأمان على حالة مشتركة.
سجّل في Exercism لتتعلّم وتتقن Roc عبر 139 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.
نستكشف الفروق بين التزامن والتوازي، ونطّلع على أساليب مختلفة تعتمدها لغات مثل JavaScript وGo وElixir وRust.