トラック
/
Roc
Roc
/
演習
/
並列文字頻度
並列文字頻度

並列文字頻度

中級

説明

並列計算を使って、テキストに含まれる文字の出現頻度を数えましょう。

並列処理とは、順番に実行することもできる物事を、並行して行うことです。よくある例が、文字の出現頻度を数えることです。並列処理を活用して、テキストの配列に含まれる各文字の出現頻度の合計を計算しましょう。

並行して文字を数える

大文字と小文字の違いや、文字以外のものは無視して文字を数え、小文字からその出現回数への辞書を返します。文字はUnicodeスカラー値として扱います。Unicodeの正規化は必要ありません。

与えられたitemsを、純粋なtask関数を使って処理するには、roc-parallelプラットフォームのpf.Parallel.map!(items, { workers, task })を使います。処理は、複数のスレッド(workersで指定します)にまたがって並行に実行されます。すべてのitemsを処理し終えると、結果は入力と同じ順序で返されます。編集する必要があるのはParallelLetterFrequency.rocだけです。

テストの実行

この演習は、他のほとんどの演習と違い、副作用のある関数を使います。テストはroc testではなく、roc --opt=speed parallel-letter-frequency-test.rocで実行します。Rocのコードが返したエラーは、通常とは異なる形式でプラットフォームから報告されます。

並行処理の別の側面、つまり共有状態を安全に更新することを扱っているbank-account演習も、覗いてみるとよいでしょう。

GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
Roc Exercism

並列文字頻度を始める準備はできましたか?

Exercismに登録すれば、139個の演習、そして本物の人間によるメンタリングとともに、Rocを学んでマスターできます。すべて無料です。

並列文字頻度を深く掘り下げよう!

並行性と並列性の違いを探りながら、JavaScript、Go、Elixir、Rustなどの言語が取るさまざまなアプローチを見ていきます。