مسیرها
/
Roc
Roc
/
تمرین‌ها
/
فراوانی موازی حروف
فراوانی موازی حروف

فراوانی موازی حروف

متوسط

دستورالعمل‌ها

فراوانی حروف را در متن‌ها با استفاده از محاسبات موازی بشمارید.

موازی‌سازی یعنی کارهایی را به‌صورت موازی انجام دهیم که می‌توان آن‌ها را به‌صورت متوالی هم انجام داد. یک مثال رایج، شمردن فراوانی حروف است.

برای محاسبه‌ی فراوانی کل هر حرف در فهرستی از متن‌ها، از موازی‌سازی استفاده کنید.

شمارش حروف به‌صورت موازی

حروف را بشمارید، بدون توجه به بزرگی و کوچکی حروف و نویسه‌هایی که حرف نیستند. سپس یک دیکشنری از حروف کوچک به تعدادشان برگردانید. با حروف مانند مقدارهای اسکالر Unicode رفتار کنید؛ نیازی به نرمال‌سازی 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 بیندازید که جنبه‌ی دیگری از «همروندی» را بررسی می‌کند: اعمال ایمن به‌روزرسانی‌ها روی وضعیت مشترک.

ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Roc Exercism

آماده‌اید فراوانی موازی حروف را شروع کنید؟

در Exercism ثبت‌نام کنید تا Roc را همراه با 139 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.

بررسی عمیق فراوانی موازی حروف!

ما تفاوت‌های میان هم‌روندی و موازی‌سازی را بررسی می‌کنیم و به رویکردهای متفاوتی که زبان‌هایی مانند JavaScript، Go، Elixir و Rust در پیش می‌گیرند نگاه می‌کنیم.