Tracks
/
Roc
Roc
/
Ejercicios
/
Frecuencia de letras en paralelo
Frecuencia de letras en paralelo

Frecuencia de letras en paralelo

Intermedia

Instrucciones

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.

Contar letras en paralelo

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.

Ejecutar las pruebas

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.

Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
Roc Exercism

¿Todo listo para empezar Frecuencia de letras en paralelo?

Regístrate en Exercism para aprender y dominar Roc con 139 ejercicios y mentoría humana real, todo gratis.

¡Profundiza en Frecuencia de letras en paralelo!

Exploramos las diferencias entre concurrencia y paralelismo, viendo los distintos enfoques que adoptan lenguajes como JavaScript, Go, Elixir y Rust.