Fermer

avril 23, 2024

Le curry en JavaScript est-il une chaîne de fonctions ?

Le curry en JavaScript est-il une chaîne de fonctions ?


Dans cet article, nous allons discuter de «Le curry en JavaScript est-il une chaîne de fonctions ?« . Ici, nous verrons comment le curry fonctionne comme une chaîne de fonctions et comment il sera utile aux développeurs. Nous verrons également la conversion d’une fonction existante dans la version actuelle. Commençons notre sujet, c’est-à-dire : Le curry en JavaScript est-il une chaîne de fonctions ?

Oui, Currying en JavaScript est une chaîne de fonctions. Le currying est une technique avancée couramment utilisée en programmation fonctionnelle qui permet de transformer une fonction avec plusieurs arguments en une séquence de fonctions, chacune ne prenant qu’un seul argument à la fois.

log(a,b,c) => log(a)(b)(c)

Une technique de programmation fonctionnelle consiste à décomposer une fonction qui prend plusieurs arguments en une série de fonctions plus petites, chacune prenant un argument. Cela crée une chaîne de fonctions, où chaque fonction renvoie une autre fonction jusqu’à ce que le résultat final soit atteint.

Le curry en JavaScript porte le nom du mathématicien Curry Haskell, qui l’a introduit dans les années 1930. Certains disent que le curry appelle une fonction, mais ce n’est pas le cas. Le curry n’appelle pas de fonction. Cela le transforme simplement. Il est également utilisé dans d’autres langues. Commençons par le code, nous discuterons plus tard des avantages.

En commençant par l’exemple standard d’une fonction addition/somme,

Le convertir en fonction de curry,


Dans cette version au curry du ajout fonction, chaque fonction prend un argument et renvoie une autre fonction jusqu’à ce que tous les arguments soient collectés et que la somme finale soit calculée.

Voici comment fonctionne le curry étape par étape :

  1. ajout(1) renvoie une fonction qui prend le deuxième nombre.
  2. addition(1)(2) / sumResult1(3) renvoie une fonction qui prend le troisième nombre.
  3. ajout(1)(2)(3) renvoie le résultat final, qui est la somme des trois nombres.

De cette façon, vous pouvez appeler le curry ajout fonction avec chaque argument séparément, créant une fonction plus modulaire et composable. Nous pouvons réutiliser cette fonction dans tout notre base de code sans dupliquer la logique. Un autre avantage du curry est la possibilité de créer des fonctions d’ordre supérieur qui améliorent la composabilité.

Curry infini ?

En utilisant certaines techniques de nature récursive, nous pouvons convertir le code de fonction pour avoir un argument infini. Cela vous permet de créer une chaîne de curry infinie, dans laquelle vous pouvez continuer à ajouter des nombres selon vos besoins, et lorsque vous êtes prêt à obtenir le résultat final, il vous suffit d’appeler la fonction curry sans arguments pour calculer la somme.

Faisons un essai à sec :

  1. Le ajout la fonction est définie pour accepter un seul argument choix1.
  2. À l’intérieur de ajout fonction, une fonction interne est renvoyée. Cette fonction interne prend un argument val2.
  3. Si val2 est fourni (c’est-à-dire que c’est vrai), la fonction interne renvoie un appel récursif à ajout avec la somme de choix1 et val2.
  4. Si val2 n’est pas fourni (c’est-à-dire que c’est faux, comme indéfini ou 0), la fonction interne renvoie le cumul choix1.
  5. Quand le curry ajout La fonction est appelée, elle peut être immédiatement invoquée avec l’argument suivant et ce processus peut être répété pour autant d’arguments que nécessaire.
  6. L’invocation finale du curry ajout la fonction est effectuée avec un jeu de parenthèses vide (). Cela aboutit au calcul de la somme accumulée de tous les nombres précédemment fournis.
  7. Le résultat est 3qui est la somme de 1 et 2.

Résumé

Curry est une transformation qui fait f(a,b,c) appelable comme f(a)(b)(c). Les implémentations JavaScript gardent généralement la fonction appelable normalement et renvoient le partiel si le nombre d’arguments est insuffisant.

Le curry nous permet d’obtenir les partiels facilement. Comme nous l’avons vu dans le ajout() exemple, après avoir curry la fonction à trois arguments addition(val1, val2, val3) nous donne des partiels lorsqu’il est appelé avec un seul argument (comme addition(val1)) ou deux arguments (comme addition(val1, val2)).

VOUS TROUVEZ CECI UTILE ? PARTAGEZ-LE






Source link