You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/99-js-misc/03-currying-partials/article.md
+3-18Lines changed: 3 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -164,25 +164,10 @@ function curried(...args) {
164
164
165
165
Quand on la lance, il y a deux branches `if` :
166
166
167
-
<<<<<<< HEAD
168
-
1. Appeler maintenant : si la longueur du `args` donné est supérieure ou égale à la fonction originelle a dans sa déclaration (`func.length`), alors simplement appeler la fonction avec.
169
-
2. Obtenir une partielle : sinon, `func` n'est pas encore appelée. À la place, une autre enveloppe `pass` est retournée, qui réappliquera `curried` sur les anciens arguments avec les nouveaux. Enfin sur un nouvel appel, encore, nous obtiendrons une nouvelle partielle (s'il n'y a pas assez d'arguments) ou, enfin, le résultat.
167
+
1. Si le nombre d'`args` passé est égal ou supérieur à celui de la fonction d'origine dans sa définition (`func.length`), alors passez-lui simplement l'appel en utilisant `func.apply`.
168
+
2. Sinon, obtenez un partiel : nous n'appelons pas encore `func`. Au lieu de cela, un autre wrapper est retourné, qui réappliquera `curried` en fournissant les arguments précédents avec les nouveaux.
170
169
171
-
Par exemple, voyons ce qu'il se passe dans le cas de `sum(a, b, c)`. Trois arguments, donc `sum.length = 3`.
172
-
173
-
Pour l'appel `curried(1)(2)(3)` :
174
-
175
-
1. Le premier appel `curried(1)` retient `1` dans son environnement lexical, et retourne une enveloppe `pass`.
176
-
2. L'enveloppe `pass` est appelée avec `(2)` : elle prend les arguments précédents (`1`), les concatène avec ce qu'elle a (`2`) et appelle `curried(1, 2)` avec lesdits arguments. Comme le nombre d'arguments est toujours inférieur à 3, `curry` retourne `pass`.
177
-
3. L'enveloppe `pass` est de nouveau appelée avec `(3)`, cet appel `pass(3)` prend les anciens arguments (`1`, `2`) et y ajoute `3`, créant l'appel `curried(1, 2, 3)` -- il y a au moins `3` arguments, ils sont donnés à la fonction originelle.
178
-
179
-
Si ce n'est toujours pas évident, tracez les appels dans votre esprit ou sur un papier.
180
-
=======
181
-
1. If passed `args` count is the same or more than the original function has in its definition (`func.length`) , then just pass the call to it using `func.apply`.
182
-
2. Otherwise, get a partial: we don't call `func` just yet. Instead, another wrapper is returned, that will re-apply `curried` providing previous arguments together with the new ones.
183
-
184
-
Then, if we call it, again, we'll get either a new partial (if not enough arguments) or, finally, the result.
185
-
>>>>>>> 468e3552884851fcef331fbdfd58096652964b5f
170
+
Ensuite, si nous l'appelons, encore une fois, nous obtiendrons soit un nouveau partiel (si pas assez d'arguments) ou, finalement, le résultat.
186
171
187
172
```smart header="Fonctions à nombre d'arguments fixe seulement"
188
173
La curryfaction requiert que la fonction ait un nombre d'arguments fixe.
0 commit comments