1ère classe F. d'ordre sup Composition Curryfication Résultat ne dépend que des arguments de la fonction Pas d’effet de bord : (altération d’un état global, entrées/sorties, etc…)
classe F. d'ordre sup Composition Curryfication Garantie la valeur d’une variable Prévisibilité Le concept de “temps” disparait Pas besoin de “copie défensive” Programmation concurrente et répartie …
classe F. d'ordre sup Composition Curryfication Refactoring Optimisations: • Memoization • Recherche des sous expressions communes • Parallélisme • etc…
Transp. référentielle F. de 1ère classe F. d'ordre sup Composition Curryfication Les fonctions sont traitées comme des valeurs On peut : • les passer en tant qu’argument • les renvoyer en tant que valeur de retour • les assigner à des variables ou constantes
F. de 1ère classe F. d'ordre sup Composition Curryfication function add(a, b) { return a + b; } const addTwo = _.partial(add, 2); addTwo(3) // 5 const addOneWithTwo = _.partial(add, 1, 2) addOneWithTwo() // 3
référentielle F. de 1ère classe F. d'ordre sup Composition Curryfication function add(a, b) { return a + b; } const addTwo = add.bind(null, 2); addTwo(3) // 5