Bonjour,
Voici une exemple sur le fonctionnement de la fonction curry3.
L'objectif de curry3 est de prendre une fonction non-currifié de 3 paramètre en parametre et de retourner une fonction currifié de 3 paramètres
P. ex., sum(x, y, z) est une fonction non-currifié de 3 paramètres, puisqu'on ne peut pas l'appeler partiellement comme sum(1). Il faut absolument passer l'ensemble des 3 paramètres pour exécuter cette fonction.
La version currifiée de cette fonction est sum(x)(z).
Cette version nous permet d'appeler partiellement la fonction,
P. ex.,
const sumCurried = curry3(sum) // Prend la fonction sum non currifié en paramètre et la convertit vers une version currifiée.
// Ensuite on peut appeler partiellement la fonction sumCurried.
sumCurriedOne = sumCurried(1) // Retourne une fonction de 2 paramètres qui fait la somme entre 1 + y + z
sumCurriedThree = sumCurriedOne(2) // Retourne une fonction de 1 paramètre qui fait la somme entre 1 + 2 + z
console.log(sumCurriedThree(3)) // Retourne le résultat de 1 + 2 + 3, donc 6.