Tracks
/
Scala
Scala
/
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.

Instrucciones específicas del track

De acuerdo con esta terminología, deberías escribir un programa paralelo y determinista y (¡cómo no!) dejar que Scala se encargue del aspecto de la concurrencia. De lo contrario, tu código podría volverse rápidamente desordenado y propenso a errores, con todo tipo de bugs de concurrencia desagradables. En particular, tu programa podría volverse no determinista, lo que en la práctica significa: muy (de hecho, MUY) difícil de depurar, de probar y de razonar sobre él.

Dicho esto, podría ser buena idea escribir primero una solución secuencial (y usar la suite de pruebas para verificarla). Solo entonces deberías intentar paralelizarla, manteniendo las partes secuencial y paralela de tu código lo más separadas posible.

Una primera iteración podría ser usar las colecciones paralelas de Scala. Quizá te parezca que esto es casi demasiado simple (sobre todo si seguiste nuestro consejo y ya tienes una solución secuencial).

Para la segunda iteración, te recomendamos probar una solución con scala.concurrent.Future. Puedes consultar este tutorial y su secuela para que te ayuden un poco. Asegúrate de que

  • tengas una sola llamada bloqueante para esperar el resultado
  • que esté justo al final de tu programa, y
  • que tenga un tiempo de espera máximo.

scala.concurrent.Future se usa en muchas bibliotecas y es la recomendación del doctor para la programación paralela y asíncrona en Scala. Por eso es esencial para dominar el lenguaje y debería formar parte de tu arsenal de Scala.

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

¿Todo listo para empezar Frecuencia de letras en paralelo?

Regístrate en Exercism para aprender y dominar Scala con 95 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.