Questo presenta una tecnica di programmazione funzionale denominata currying. (relativo anche a partial function appliction)
Più di >
in genere richiede 2 argomenti (uno a sinistra e uno a destra). Questo è un modo per nutrire uno alla volta.
Potrebbe essere più facile da vedere che cosa sta accadendo se lo si chiama in linea:
greaterThan(10)(11);
Come si può vedere dall'esempio precedente, la 10
viene passato in per il parametro n
e poi il 11
viene passato in per il parametro m
.
La prima applicazione che passa il 10
emette una funzione simile al seguente:
function(m) { return m > 10; };
Questa è la prima applicazione nell'applicazione parziale.
Da lì è facile vedere come viene passato il 11
per ottenere il risultato finale.
Così, di scomporlo:
function greaterThan(n) {
return function(m) { return m > n; };
}
//var greaterThan10 = greaterThan(10); -- is equivalent to:
var greaterThan10 = function(m) { return m > 10; };
console.log(greaterThan10(11)); //--> true
fonte
2015-05-03 21:50:57
Grazie ormai molto chiaro .. – whatever