Compte la fréquence des lettres dans des textes en utilisant le calcul parallèle.
Le parallélisme consiste à faire en parallèle des choses qui peuvent aussi être faites de manière séquentielle. Un exemple courant est le comptage de la fréquence des lettres. Utilise le parallélisme pour calculer la fréquence totale de chaque lettre dans un tableau de textes.
Compte les lettres, en ignorant la casse et les caractères non alphabétiques, puis renvoie un dictionnaire qui associe chaque lettre minuscule à son nombre d'occurrences. Considère les lettres comme des valeurs scalaires Unicode ; la normalisation Unicode n'est pas nécessaire.
Utilise pf.Parallel.map!(items, { workers, task }) de la plateforme roc-parallel pour traiter les items donnés à l'aide d'une fonction task pure, en parallèle sur plusieurs threads (indiqués par workers).
Les résultats sont renvoyés dans l'ordre d'entrée une fois que tous les items ont été traités.
Tu n'as besoin de modifier que ParallelLetterFrequency.roc.
Contrairement à la plupart des autres exercices, cet exercice utilise des fonctions à effets.
Exécute les tests avec roc --opt=speed parallel-letter-frequency-test.roc, plutôt qu'avec roc test.
Toute erreur renvoyée par le code Roc est signalée par la plateforme, dans un format différent de celui auquel on est habitué.
Tu peux aussi jeter un œil à l'exercice bank-account, qui explore un autre aspect de la concurrence : appliquer des mises à jour à un état partagé en toute sécurité.
Inscris-toi sur Exercism pour apprendre et maîtriser Roc avec 139 exercices, et un vrai mentorat humain, le tout gratuitement.
On explore les différences entre concurrence et parallélisme, en examinant les différentes approches adoptées par des langages comme JavaScript, Go, Elixir et Rust.