Percursos
/
Scala
Scala
/
Exercícios
/
Frequência de letras em paralelo
Frequência de letras em paralelo

Frequência de letras em paralelo

Médio

Instruções

Conta a frequência das letras em textos recorrendo a computação paralela.

O paralelismo consiste em fazer em paralelo coisas que também podem ser feitas sequencialmente. Um exemplo comum é contar a frequência de letras. Usa o paralelismo para calcular a frequência total de cada letra numa lista de textos.

Instruções específicas do percurso

De acordo com esta terminologia, deves escrever um programa paralelo e determinístico e (sem dúvida!) deixar o Scala tratar do aspeto da concorrência. Caso contrário, o teu código pode rapidamente tornar-se confuso e propenso a erros com todo o tipo de bugs de concorrência desagradáveis. Em particular, o teu programa pode tornar-se indeterminístico, o que, na prática, significa: muito (na verdade, MUITO) difícil de depurar, testar e raciocinar sobre ele.

Dito isto, pode ser boa ideia escrever primeiro uma solução sequencial (e usar o conjunto de testes para a verificar). Só depois deves tentar paralelizá-la, mantendo as partes sequencial e paralela do teu código o mais separadas possível.

Uma primeira iteração pode ser usar as coleções paralelas do Scala. Podes achar que isto é quase demasiado simples (especialmente se seguiste o nosso conselho e já tens uma solução sequencial).

Para a segunda iteração, recomendamos que experimentes uma solução com scala.concurrent.Future. Podes consultar este tutorial e a sua continuação para obteres alguma ajuda. Certifica-te de que

  • tens apenas uma única chamada bloqueante para esperar pelo resultado
  • que está mesmo no fim do teu programa, e
  • que tem um tempo limite.

scala.concurrent.Future é usado em muitas bibliotecas e é o conselho do médico para a programação paralela e assíncrona em Scala. Por isso, é essencial para dominares a linguagem e deve tornar-se parte do teu arsenal Scala.

Editar via GitHub A ligação abre numa nova janela ou separador
Scala Exercism

Estás pronto para começar Frequência de letras em paralelo?

Inscreve-te no Exercism para aprenderes e dominares Scala com 95 exercícios, e mentoria humana real, tudo grátis.

Mergulha a fundo em Frequência de letras em paralelo!

Exploramos as diferenças entre concorrência e paralelismo, analisando as diferentes abordagens adotadas por linguagens como JavaScript, Go, Elixir e Rust.