Chapitre 10 - Standard higher-order functions Flashcards
Qu’est-ce qu’une fonction avec argument prédicat
la fonction va utiliser l’argument qui indique true ou false, pour trier, adapter ou agir sur une liste par exemple (>90)
Exemple de fonction avec prédicat
exists: la valeur existe au moins une fois
forAll: tous respecte la condition
count: nombre qui satisfait le prédicat
filter: filtre suivant le prédicat
filterNot: inverse de filter
partition: sépare en deux, ceux qui satisfait, et les autres
takeWhile: prendre tant que et on s’arrete
dropWhile: laisser tomber tant que et on arrête
Différence entre map et foreach
map applique une fonction sur une liste et retourne quelque chose
foreach applique une fonction sur une liste mais ne retourne rien
Différence entre flatMap et map
flatMap est utilisé pour appliquer puis filtrer sur une liste
ou alors pour créer des éléments dans une liste ou en enlever, flatMap reduit aussi la liste d’un niveau
map applique sans distinction la fonction
le flatMap qui double la valeur sur Liste(1,Liste(2,3)) va donner quoi
Liste(2,4,6)
Functors et Monads et map et flatMap
map satisfait à la condition functors et flapMap satsisfait à la condition monads
Que font fold et reduce?
Il agisse en séquence sur une liste. fold agit avec une valeur initiale en paramètre, reduce travaille uniquement en utilisant le premier de la liste
différence entre foldRight, reduceRight et foldLeft, reduceLeft
foldRight, reduceRight travaille en partant de la fin de la liste our retourner à la tête et foldLeft, reduceLeft travaille depuis la tête vers la queue
iterate, tabulate, unfold
les trois construisent des listes
tabulate => une fonction qui va créer les valeurs
iterate => une fonciton qui va créer les valeurs en tenant compte de celle d’avant
unfold => inverse de fold
sortWith, sortBy, maxBy, minBy
Utiliser pour comparer
sortWith => utilise la fonction indiquant comment comparer
sortBy => choisir dans un objet ou des listes l’élément qui sert à comparer
maxBy, minBy => choisir la valeur dans l’objet qui permet de savoir ce ki le plus grand ou le plus petit
groupBy, groupMap
Permet de faire des regroupements suivant des critères déterminés par la fonction en paramètre
groupBy => sépare suivant les valeurs
exemple avec un module, 0 => pair, 1 => impair
groupMap => 1 fonction pour savoir grouper, 1 fonction qui fait du mapping