Párhuzamos számítással számold meg a betűk gyakoriságát szövegekben.
A párhuzamosság lényege, hogy olyan dolgokat végzünk párhuzamosan, amelyeket sorosan is el lehet végezni. Gyakori példa erre a betűk gyakoriságának megszámolása. Használj párhuzamosságot, hogy kiszámítsd az egyes betűk összesített gyakoriságát a szövegek listájában.
Az itt leírt terminológia szerint párhuzamos és determinisztikus programot kell írnod, és (mindenképp!) hagyd, hogy a Scala foglalkozzon a konkurencia kérdésével. Különben a kódod hamar zavarossá és hibahajlamossá válhat mindenféle csúnya konkurenciahiba miatt. Különösen előfordulhat, hogy a programod nemdeterminisztikussá válik, ami a gyakorlatban annyit tesz: nagyon (sőt, NAGYON) nehéz debugolni, tesztelni és átgondolni.
Mindezek után viszont jó ötlet lehet először egy szekvenciális megoldást írni (és a tesztkészlettel ellenőrizni). Csak ezután próbálkozz a párhuzamosítással, miközben a kódod szekvenciális és párhuzamos részeit a lehető legjobban elkülönítve tartod.
Első iterációként használhatod a Scala párhuzamos kollekciók szolgáltatását. Lehet, hogy ez szinte túl egyszerűnek tűnik majd (főleg, ha megfogadtad a tanácsunkat, és már van szekvenciális megoldásod).
A második iterációhoz azt javasoljuk, hogy próbálj ki egy scala.concurrent.Future alapú megoldást.
Segítségért megnézheted ezt az útmutatót és a folytatását.
Ügyelj arra, hogy
A scala.concurrent.Future-t rengeteg könyvtár használja, és ez a Scala párhuzamos és aszinkron programozásának ajánlott módja.
Ezért elengedhetetlen a nyelv elsajátításához, és a Scala-fegyvertárad részévé kell válnia.
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Scala nyelvet 95 feladat segítségével, valódi emberi mentorálással, mindez ingyen.
A konkurencia és a párhuzamosság közötti különbségeket járjuk körbe, olyan nyelvek eltérő megközelítéseit szemügyre véve, mint a JavaScript, a Go, az Elixir és a Rust.