Currying
Currying permite transformar uma função que espera múltiplos argumentos em uma sequência de funções que aceitam um argumento por vez. Essa técnica é útil para criar funções genéricas reutilizáveis, como uma calculadora de imposto que recebe a alíquota e depois o valor base. Em bibliotecas JavaScript, currying é usado para compor funções ou aplicar configurações parciais, facilitando código mais expressivo e modular.
O PROBLEMA
Crie somar(a)(b) usando currying. Crie adicionar5 = somar(5) para aplicação parcial.
EXEMPLO
somar(3)(4) → 7 const adicionar5 = somar(5); adicionar5(3) → 8 adicionar5(10) → 15
SOBRE O CONCEITO
Currying é uma técnica onde uma função com múltiplos parâmetros é transformada em funções aninhadas que aceitam um argumento cada. No exercício, somar(a)(b) retorna uma função que espera b e depois soma. Um erro comum é retornar a soma diretamente (return a + b) em vez de uma função, pois não atende ao formato somar(a)(b). A função somar deve retornar uma arrow function que captura a e depois recebe b. Isso permite aplicação parcial, como const adicionar5 = somar(5), que cria uma nova função fixada em 5. O uso de const e arrow function é permitido, sem loops ou arrays.
RESOLUÇÃO