I understand that, roughly simplifying, using currying is breaking a function that gets multiple arguments into smaller functions that take only parts of the original function's arguments. Consider the code below as an example:
window.onload = function () {
//função de somar com a sintaxe comum
console.log("Função comum: " + soma(1,1));
//função de somar com a sintaxe "currificada"
console.log("Função com curry: " + somacurry(2)(2));
//função que exibe as informações da pessoa também com curry
console.log(pessoa("Artur")("Trapp")("21"));
}
function soma(a,b) { return a + b; }
function somacurry(a){
return function (b) { return a + b; }
}
function pessoa(nome){
return function (sobrenome){
return function (idade) {
return "Olá, meu nome é " + nome + " " + sobrenome + ", e eu tenho " + idade + " anos!";
}
}
}
I know that this technique is widely used in functional languages (like Haskell). But I am not able to see advantages, whether in simplifying syntax or in performance. What would be the advantages of using a function with the currying technique instead of functions with common syntax?
PS: I did not find ideal tags