Треки
/
Roc
Roc
/
Вправи
/
Паралельний підрахунок частоти літер
Паралельний підрахунок частоти літер

Паралельний підрахунок частоти літер

Середня

Вказівки

Порахуйте частоту літер у текстах за допомогою паралельних обчислень.

Паралелізм полягає в тому, щоб виконувати паралельно те, що також можна виконати послідовно. Поширений приклад - підрахунок частоти літер. Застосуйте паралелізм, щоб обчислити загальну частоту кожної літери в масиві текстів.

Паралельний підрахунок літер

Порахуйте літери, ігноруючи регістр і символи, що не є літерами, і поверніть словник, який зіставляє літери в нижньому регістрі з їхньою кількістю. Вважайте літери скалярними значеннями Unicode; нормалізація Unicode не потрібна.

Скористайтеся pf.Parallel.map!(items, { workers, task }) із платформи roc-parallel, щоб обробити надані items чистою функцією task паралельно в кількох потоках (їх задає workers). Результати повертаються в порядку вхідних даних після обробки всіх елементів. Достатньо відредагувати лише ParallelLetterFrequency.roc.

Запуск тестів

На відміну від більшості інших вправ, ця вправа використовує функції з ефектами. Запускайте тести командою roc --opt=speed parallel-letter-frequency-test.roc, а не roc test. Будь-яку помилку, яку повертає код Roc, повідомляє платформа у незвичному форматі.

Також радимо зазирнути до вправи bank-account, яка досліджує інший бік конкурентності: безпечне застосування оновлень до спільного стану.

Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Roc Exercism

Час розпочати Паралельний підрахунок частоти літер?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Roc, а також 139 вправ та справжнє наставництво від людей, і все це безкоштовно.

Глибоке занурення у Паралельний підрахунок частоти літер!

Ми дослідимо різницю між конкурентністю і паралелізмом, розглянувши різні підходи, які застосовують такі мови, як JavaScript, Go, Elixir і Rust.