Conte a frequência das letras em textos usando computação paralela.
O paralelismo consiste em fazer em paralelo coisas que também podem ser feitas de forma sequencial. Um exemplo comum é contar a frequência das letras. Use o paralelismo para calcular a frequência total de cada letra em uma lista de textos.
De acordo com esta terminologia, você deve escrever um programa paralelo e determinístico e (sem dúvida!) deixar que o Scala cuide do aspecto da concorrência. Caso contrário, seu código pode rapidamente ficar desorganizado e propenso a erros, com todo tipo de bug desagradável de concorrência. Em particular, seu programa pode se tornar não determinístico, o que na prática significa: muito (na verdade, MUITO) difícil de debugar, testar e raciocinar sobre.
Dito isso, pode ser uma boa ideia escrever primeiro uma solução sequencial (e usar a suíte de testes para verificá-la). Só depois disso você deve tentar paralelizá-la, mantendo as partes sequencial e paralela do seu código o mais separadas possível.
Uma primeira iteração poderia usar as coleções paralelas do Scala. Você pode achar que isso é quase simples demais (especialmente se você seguiu nosso conselho e já tem uma solução sequencial).
Para a segunda iteração, recomendamos que você experimente uma solução com scala.concurrent.Future.
Você pode consultar este tutorial e sua continuação para obter ajuda.
Certifique-se de que você
scala.concurrent.Future é usado em muitas bibliotecas e é o conselho do doutor para programação paralela e assíncrona em Scala.
Por isso, ele é essencial para dominar a linguagem e deve se tornar parte do seu arsenal de Scala.
Crie sua conta no Exercism para aprender e dominar Scala com 95 exercícios e mentoria humana de verdade, tudo de graça.
Exploramos as diferenças entre concorrência e paralelismo, vendo as diferentes abordagens adotadas por linguagens como JavaScript, Go, Elixir e Rust.