Dans le précédent post, j’avais parlé des applicatives sur les Maybes.
Nous allons voir ensemble comment les applicatives se comportent sur les listes.
Rappelons que l’idée des applicatives c’est
- ma valeur est dans un container
- et ma fonction que je vais appliquer est aussi dans un container
Pour la liste c’est un peu près la même idée.
- mes valeurs sont dans une collection
- mes fonctions sont aussi dans une collection
Initialisons une Collection de valeurs
1
|
|
Créons un collection de fonctions
1 2 3 4 5 6 7 8 |
|
Regardons de suite le résultat, nous obtenons une collection qui contient [4, 5, 5, 6]
. En fait on a calculé toutes les possibilités.. Puisque [1+3, 1+4, 2+3, 2+4]
Essayons de programmer un générateur de nom de scout (?!!)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
|
Grâce à l’évaluation partielle je peux créer des fonctions à plusieurs arguments. Les applicatives sur les listes me permette de faire toutes les combinaisons.
J’obtiens
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Bon c’est sur que petit renard affectueux n’est pas génial comme nom..
Le Panda bavard.
Liste des articles
- Partie 1 : Monade/Functor
- Partie 2 : Le functor Maybe
- Partie 3 : Le functor Maybe avec le Bind
- Partie 4 : Les listes
- Interlude : Les évaluations partielles
- Partie 5 : Les applicatives
- Partie 6 : Les applicatives et les listes