JavaScriptFunçõesintermediario

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

Mais exercícios de Funções

JSF019 · IntermediárioComposição de funçõesJSF020 · IntermediárioIIFEJSF022 · AvançadoGenerator functionJSF023 · AvançadoFunção pura vs impura
Ver todos os exercícios de JavaScript