tricky question
JavaScript
function f(a,b,c) {
if(a && b && c)
return (a + b) * c;
if (a === undefined)
return 0;
else return function f(b) {
return function f(c) {
return (a + b) * c;
}
}
}
console.log(f(1)(2)(3)); // 9; (1+2)*3
console.log(f(2)(2)(1)); // 4
console.log(f(2, 2, 1)); //4
console.log(f()); //0