فراوانی حروف را در متنها با استفاده از محاسبات موازی بشمارید.
موازیسازی یعنی کارهایی را بهصورت موازی انجام دهیم که میتوان آنها را بهصورت متوالی هم انجام داد. یک مثال رایج، شمردن فراوانی حروف است.
برای محاسبهی فراوانی کل هر حرف در فهرستی از متنها، از موازیسازی استفاده کنید.
بر اساس این اصطلاحشناسی، باید برنامهای «موازی» و «قطعی» بنویسید و (حتماً هم این کار را بکنید!) بگذارید Scala به جنبهی «همروندی» رسیدگی کند. وگرنه ممکن است code شما بهسرعت بههمریخته و مستعد خطا شود، با انواع و اقسام bugهای بدِ همروندی. بهویژه اینکه برنامهتان ممکن است غیرقطعی شود، که در عمل یعنی: debug کردن، test کردن و استدلال دربارهی آن بسیار (در واقع، بسیار بسیار) دشوار میشود.
با این همه، شاید ایدهی خوبی باشد که اول یک راهحل متوالی بنویسید (و با test suite درستیاش را بررسی کنید). فقط پس از آن است که باید تلاش کنید آن را موازی کنید، در حالی که بخشهای متوالی و موازی code شما را تا حد امکان جدا از هم نگه میدارید.
نخستین دور میتواند استفاده از مجموعههای موازی Scala باشد. ممکن است ببینید که این تقریباً بیش از حد ساده است (بهویژه اگر توصیهی ما را گوش کرده باشید و از قبل یک راهحل متوالی داشته باشید).
برای دور دوم توصیه میکنیم راهحلی با scala.concurrent.Future را امتحان کنید.
برای گرفتن کمی کمک میتوانید به این آموزش و ادامهی آن سر بزنید.
مطمئن شوید که:
scala.concurrent.Future در کتابخانههای زیادی به کار میرود و توصیهی پزشک برای برنامهنویسی موازی و ناهمگام در Scala است.
پس برای تسلط بر زبان ضروری است و باید بخشی از زرادخانهی Scala شما شود.
در Exercism ثبتنام کنید تا Scala را همراه با 95 تمرین و مربیگری انسانی واقعی یاد بگیرید و در آن استاد شوید، همهی اینها رایگان.
ما تفاوتهای میان همروندی و موازیسازی را بررسی میکنیم و به رویکردهای متفاوتی که زبانهایی مانند JavaScript، Go، Elixir و Rust در پیش میگیرند نگاه میکنیم.