Conta la frequenza delle lettere nei testi usando il calcolo parallelo.
Il parallelismo consiste nel fare in parallelo cose che si possono fare anche in sequenza. Un esempio comune è contare la frequenza delle lettere. Usa il parallelismo per calcolare la frequenza totale di ogni lettera in un elenco di testi.
Conta le lettere, ignorando maiuscole/minuscole e i caratteri che non sono lettere, e restituisci un dizionario dalle lettere minuscole ai loro conteggi. Considera le lettere come valori scalari Unicode; la normalizzazione Unicode non è necessaria.
Usa pf.Parallel.map!(items, { workers, task }) dalla piattaforma roc-parallel per elaborare gli items forniti con una funzione task pura, in parallelo su più thread (indicati da workers).
I risultati vengono restituiti nell'ordine di input una volta che tutti gli elementi sono stati elaborati.
Devi solo modificare ParallelLetterFrequency.roc.
A differenza della maggior parte degli altri esercizi, questo esercizio usa funzioni con effetti.
Esegui i test con roc --opt=speed parallel-letter-frequency-test.roc, anziché con roc test.
Qualsiasi errore restituito dal codice Roc viene segnalato dalla piattaforma, con un formato diverso dal solito.
Potresti anche voler dare un'occhiata all'esercizio bank-account, che esplora un altro lato della concorrenza: applicare gli aggiornamenti in modo sicuro a uno stato condiviso.
Iscriviti a Exercism per imparare e padroneggiare Roc con 139 esercizi e il mentoring di persone reali, tutto gratis.
Esploriamo le differenze tra concorrenza e parallelismo, esaminando i diversi approcci adottati da linguaggi come JavaScript, Go, Elixir e Rust.