Dans cette vidéo nous allons découvrir le principe de la curryfication. Ce principe de programmation fonctionnelle permet de transformer une fonction qui attend plusieurs arguments en fonction à un argument qui retournera une fonction pour le reste des arguments.
Par exemple cette fonction :
Pourra être transformée de cette manière :
Cela peut aussi être fait de manière inverse en faisant en sorte que le premier appel corresponde au dernier argument.
Quelle utilisation ?
La curryfication n'est pas forcément un motif que l'on va retrouver systématiquement mais il permet de simplifier certaines opérations.
On peut aussi simplifier une fonction qui attend de trop nombreux arguments.
Exemple d'implémentation
Maintenant que nous avons vu le principe on peut se demander comment va fonctionner cette transformation. En JavaScript il est assez simple d'implémenter une méthode de curryfication en se basant sur apply() et bind(). On permettra à nos fonctions d'accepter un second argument pour spécifier manuellement le nombre d'arguments attendus par la fonction (par exemple parseInt.length renverra 1 donc on ne peut pas se baser seulement sur cette propriété pour déterminer le nombre de paramètres).