Cuenta la frecuencia de las letras en textos usando computación paralela.
El paralelismo consiste en hacer en paralelo cosas que también se pueden hacer de forma secuencial. Un ejemplo común es contar la frecuencia de las letras. Usa el paralelismo para calcular la frecuencia total de cada letra en una lista de textos.
Cuenta las letras sin distinguir mayúsculas de minúsculas y sin contar los caracteres que no sean letras, y devuelve un diccionario que va de letras minúsculas a sus conteos. Trata las letras como valores escalares de Unicode; no se requiere normalización Unicode.
Usa pf.Parallel.map!(items, { workers, task }) de la plataforma roc-parallel para procesar los items dados con una función task pura, en paralelo a través de varios hilos (indicados por workers).
Los resultados se devuelven en el orden de entrada una vez que se han procesado todos los elementos.
Solo necesitas editar ParallelLetterFrequency.roc.
A diferencia de la mayoría de los otros ejercicios, este ejercicio usa funciones con efectos.
Ejecuta las pruebas con roc --opt=speed parallel-letter-frequency-test.roc, en lugar de roc test.
Cualquier error que devuelva el código de Roc lo reporta la plataforma, con un formato distinto al habitual.
También puedes revisar el ejercicio bank-account, que explora otra cara de la concurrencia: aplicar actualizaciones de forma segura a un estado compartido.
Regístrate en Exercism para aprender y dominar Roc con 139 ejercicios y mentoría humana real, todo gratis.
Exploramos las diferencias entre concurrencia y paralelismo, viendo los distintos enfoques que adoptan lenguajes como JavaScript, Go, Elixir y Rust.