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
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -40,7 +40,7 @@ Come potete vedere, l'implementazione è piuttosto semplice: sono due semplici w
40
40
41
41
- Il risultato di `curry(func)` è un wrapper `function(a)`.
42
42
- Quando viene invocato come `curriedSum(1)`, l'argomento viene memorizzato nel Lexical Environment, e viene ritornato un nuovo wrapper `function(b)`.
43
-
- Successivamente questo warepper viene invoccato con `2` come argomento, che passerà l'invocazione a `sum`.
43
+
- Successivamente questo wrapper viene invocato con `2` come argomento, che passerà l'invocazione a `sum`.
44
44
45
45
Implementazioni più avanzate del currying, come [_.curry](https://lodash.com/docs#curry) fornito dalla libreria lodash, ritorna un wrapper che consente di invocare una funzione sia nella forma standard che in quella parziale:
Per poterne comprendere i benefici abbiamo bisogno di un esempio di applicazione reale.
61
61
62
-
Ad esempio, abbiamo una funzione di logging `log(date, importance, message)` che formatta e ritorna le informazioni. In un progetto reale, una funzione del genere ha diverse funzionalità utili, come l'invio di log in rete, qui useremo semplicemente un `alert`:
62
+
Ad esempio, abbiamo una funzione di logging `log(date, importance, message)` che formatta e ritorna le informazioni. In un progetto reale, una funzione del genere ha diverse funzionalità utili, come l'invio di log in rete; qui useremo semplicemente un `alert`:
63
63
64
64
```js
65
65
functionlog(date, importance, message) {
@@ -150,7 +150,7 @@ La funzione `curry` può sembrare complicata, ma in realtà è piuttosto semplic
150
150
Il risultato dell'invocazione `curry(func)` è il wrapper `curried` (che ha subito il processo di currying), ed appare in questo modo:
151
151
152
152
```js
153
-
// func è la funzionie trasformata
153
+
// func è la funzione trasformata
154
154
functioncurried(...args) {
155
155
if (args.length>=func.length) { // (1)
156
156
returnfunc.apply(this, args);
@@ -178,7 +178,7 @@ Una funzione che utilizza i parametri rest, come `f(...args)`, non può passare
178
178
```smart header="Un po' più del currying"
179
179
Per definizione, il currying dovrebbe convertire `sum(a, b, c)` in `sum(a)(b)(c)`.
180
180
181
-
Ma la maggiora parte delle implementazioni in JavaScript sono più avanzate di così, come descritto: queste mantengono la funzione invocabile nella variante a più argomenti.
181
+
Ma la maggior parte delle implementazioni in JavaScript sono più avanzate di così, come descritto: queste mantengono la funzione invocabile nella variante a più argomenti.
0 commit comments