Percursos
/
Roc
Roc
/
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.

Contar letras em paralelo

Conta as letras, ignorando se são maiúsculas ou minúsculas e tudo o que não sejam letras, e devolve um dicionário que associa as letras minúsculas às respetivas contagens. Trata as letras como valores escalares Unicode; não é necessária normalização Unicode.

Usa pf.Parallel.map!(items, { workers, task }) da plataforma roc-parallel para processar os items dados com uma função task pura, em paralelo por várias threads (indicadas por workers). Os resultados são devolvidos na ordem de entrada depois de todos os items serem processados. Só precisas de editar o ficheiro ParallelLetterFrequency.roc.

Executar os testes

Ao contrário da maioria dos outros exercícios, este exercício usa funções com efeitos. Executa os testes com roc --opt=speed parallel-letter-frequency-test.roc, em vez de roc test. Qualquer erro devolvido pelo código Roc é comunicado pela plataforma, num formato diferente do habitual.

Também podes querer espreitar o exercício bank-account, que explora um lado diferente da concorrência: aplicar atualizações a um estado partilhado em segurança.

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

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

Inscreve-te no Exercism para aprenderes e dominares Roc com 139 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.