學習軌道
/
Scala
Scala
/
練習
/
平行字母頻率
平行字母頻率

平行字母頻率

中等

說明

使用平行運算計算多段文字中字母出現的頻率。

平行運算的重點,在於把那些也能循序完成的工作改成同時進行。 常見的例子就是計算字母出現的頻率。 請運用平行運算,計算由多段文字組成的陣列中,每個字母的總出現頻率。

Track 專屬說明

根據這個術語,你應該寫出平行且具確定性的程式,並且(務必!)讓 Scala 來處理並行的部分。 否則你的程式碼很快就會變得雜亂又容易出錯,還會碰上各種討厭的並行 bug。 尤其你的程式可能會變得不具確定性,在實務上這代表:非常(事實上,超級)難以除錯、測試和推理。

話雖如此,先寫一個循序的解法(並用測試套件驗證它)可能是個好主意。 然後你再試著將它平行化,同時盡可能把程式碼中循序和平行的部分分開。

第一個疊代可以採用 Scala 的平行集合。 你可能會發現這幾乎太簡單了(尤其是如果你聽從了我們的建議,已經有循序的解法)。

第二個疊代,我們建議你試試用scala.concurrent.Future的解法。 你可以參考這篇教學和它的續篇來獲得一些幫助。 請務必確認你

  • 只有一個阻塞式呼叫用來等待結果
  • 它位於程式的最末端,而且
  • 有設定逾時。

scala.concurrent.Future被許多函式庫使用,也是 Scala 平行與非同步程式設計的建議做法。 所以它是精通這門語言的關鍵,也應該成為你 Scala 武器庫的一部分。

透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Scala Exercism

準備好開始 平行字母頻率 了嗎?

註冊 Exercism,透過 95 個練習 和真人引導來學習並精通 Scala,全部免費。

深入探索 平行字母頻率!

我們會探討並行與平行之間的差異,並看看 JavaScript、Go、Elixir 和 Rust 等語言採用的不同作法。