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.
Secondo questa terminologia, dovresti scrivere un programma parallelo e deterministico e (senza dubbio!) lasciare che sia Scala a occuparsi dell'aspetto della concorrenza. Altrimenti il codice potrebbe rapidamente diventare disordinato e pieno di errori, con ogni genere di fastidioso bug di concorrenza. In particolare il programma potrebbe diventare non deterministico, il che in pratica significa: molto (anzi, MOLTO) difficile da debuggare, da testare e su cui ragionare.
Detto questo, potrebbe essere una buona idea scrivere prima una soluzione sequenziale (e usare la suite di test per verificarla). Solo dopo dovresti provare a parallelizzarla, mantenendo le parti sequenziali e parallele del codice il più separate possibile.
Una prima iterazione potrebbe usare le collezioni parallele di Scala. Potresti scoprire che è quasi troppo semplice (soprattutto se hai seguito il nostro consiglio e hai già una soluzione sequenziale).
Per la seconda iterazione, ti consigliamo di provare una soluzione con scala.concurrent.Future.
Puoi consultare questo tutorial e il suo seguito per un po' di aiuto.
Assicurati di
scala.concurrent.Future è usato in molte librerie ed è il consiglio del medico per la programmazione parallela e asincrona in Scala.
Quindi è essenziale per padroneggiare il linguaggio e dovrebbe entrare a far parte del tuo arsenale Scala.
Iscriviti a Exercism per imparare e padroneggiare Scala con 95 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.