JS - Chapitre 08 - Pipelines and Currying Flashcards
Définition de pipelines
Série de transformation de données ou la sortie d’une transformation est l’entrée d’une autre
Equivalence de shortenText(capitalize(“ce texte long”)) avec pipe de lodash
const shortText = pipe(
capitalize,
shortenText
)(“ce texte est long”);
On notera l’ordre dans lequel est appliqué la “pipe”
Definition de chaining
un définition de pipe avec un objet
Fonction identity
fonction unary qui renvoie la valeur de l’argument
Code de l’identité
function identity(value) { return value; }
Code de log identity
function logIdentity(value) { console.log(value); return value; }
Currying
Changement d’une fonction qui a besoin de n arguments dans une série de n fonction avec 1 arguments
Currying de function startsWith(word,term) {
return word.startsWith(term);
}
technique 1 (explicite)
function startsWith(term) {
return function(word) {
return word.startsWith(term);
}
}
La fonction renvoie une fonction qui accepte un paramètre
utilisation: words.filter(startsWith(‘a’)).forEach(console.log);
Currying de function startsWith(word,term) {
return word.startsWith(term);
}
technique 2 (arrow)
const startsWith = term => word => {
return word.startWiths(term);
}
Currying de function startsWith(word,term) {
return word.startsWith(term);
}
technique 3 (lodash)
const startsWith = curry(function(term,word) {return word.startsWith(term);});
explication de reduce en pipeline
A chaque etape, reduce prend le resultat de l’etape précédente de réduction comme valeur aggregé et poursuit