Currying em javascript para função com n parâmetros
Se f :: (a, b) -> c, podemos definir curry (f) como abaixo:
caril (f) :: ((a, b) -> c) -> a -> b -> c
const curry = f => a => b => f(a, b);
const sum = curry((num1, num2) => num1 + num2);
console.log(sum(2)(3)); //5
Como implementamos a função curry genérica que aceita uma função com n parâmetros?