使用平行運算計算多段文字中字母出現的頻率。
平行運算的重點,在於把那些也能循序完成的工作改成同時進行。 常見的例子就是計算字母出現的頻率。 請運用平行運算,計算由多段文字組成的陣列中,每個字母的總出現頻率。
根據這個術語,你應該寫出平行且具確定性的程式,並且(務必!)讓 Scala 來處理並行的部分。 否則你的程式碼很快就會變得雜亂又容易出錯,還會碰上各種討厭的並行 bug。 尤其你的程式可能會變得不具確定性,在實務上這代表:非常(事實上,超級)難以除錯、測試和推理。
話雖如此,先寫一個循序的解法(並用測試套件驗證它)可能是個好主意。 然後你再試著將它平行化,同時盡可能把程式碼中循序和平行的部分分開。
第一個疊代可以採用 Scala 的平行集合。 你可能會發現這幾乎太簡單了(尤其是如果你聽從了我們的建議,已經有循序的解法)。
第二個疊代,我們建議你試試用scala.concurrent.Future的解法。
你可以參考這篇教學和它的續篇來獲得一些幫助。
請務必確認你
scala.concurrent.Future被許多函式庫使用,也是 Scala 平行與非同步程式設計的建議做法。
所以它是精通這門語言的關鍵,也應該成為你 Scala 武器庫的一部分。