Até agora, aprendemos a:
- Controlar estado com closures
- Evitar efeitos colaterais com imutabilidade
Agora vamos aprender uma técnica que conecta tudo isso:
Currying.
🎯 Objetivo da aula
Ao final desta aula, você será capaz de:
- Entender o que é currying
- Diferenciar currying de funções comuns
- Criar funções mais reutilizáveis
- Reconhecer currying em código real
- Combinar currying com closures e imutabilidade
O que é currying?
Currying é uma técnica onde:
uma função que recebe vários argumentos é transformada em uma sequência de funções que recebem um argumento por vez.
Função tradicional
Veja uma função comum:
function soma(a, b) { return a + b; }
console.log(soma(2, 3)); // Saída será 5
Ela recebe dois argumentos de uma vez.
A mesma função com currying
function soma(a) { return function (b) { return a + b; }; }
console.log(soma(2)(3)); // Saída será 5
Aqui:
- A primeira função recebe
a - A segunda recebe
b - O resultado final é o mesmo
Mas por que alguém faria isso?
A pergunta é excelente — e necessária.
Currying **não existe para fazer contas**.
Ele existe para:
- Especializar funções
- Reaproveitar lógica
- Compor comportamentos
Currying na prática — função especializada
Vamos criar uma função genérica:
function multiplicar(fator)
{
return function (numero)
{
return numero * fator;
};
} Agora criamos funções específicas:
const dobrar = multiplicar(2);
const triplicar = multiplicar(3);
console.log(dobrar(4)); // Saída será 8
console.log(triplicar(4)); // Saída será 12
Isso é currying em ação.
Currying + Closure (ligação direta)
O que está acontecendo por baixo:
fatorfica preso no escopo- A função interna lembra desse valor
- Isso é uma closure
Currying torna o código mais declarativo
Compare:
calcularDesconto(produto, 0.1); calcularDesconto(produto, 0.2); Com currying:
const desconto10 = calcularDesconto(0.1);
const desconto20 = calcularDesconto(0.2);
desconto10(produto);
desconto20(produto);
A intenção fica explícita.
Currying ajuda na composição
Funções que recebem um argumento são mais fáceis de:
- combinar
- encadear
- reutilizar
Isso nos leva diretamente ao próximo tópico.
Quando NÃO usar currying
Currying não é obrigatório.
- Funções simples → não precisa
- Código procedural → pode confundir
- Equipe não familiarizada → use com cuidado
Resumo da aula para nunca mais esquecer
- Currying transforma funções em sequência de funções
- Permite especializar comportamento
- Usa closures para preservar valores
- Torna código mais reutilizável
- Facilita composição de funções
Na próxima aula, vamos fechar esse bloco funcional com Composição de funções.
HARDWARE
Entendendo o seu computador
O que há dentro do meu computador?
Existem alguns componentes fundamentais presentes dentro do seu computador e é muito importante que você conheça um pouco sobre eles, seja para argumentar com algum vendedor durante a compra de um novo PC ou para identificar alguma atitude desleal de algum técnico que esteja te passando um orçamento para reparo. Na seção Raio-X aqui do Contém Bits você pode conhecer e entender mais detalhadamente sobre cada componente, ou também pode clicar abaixo no componente que deseja, para conhecê-lo melhor.
Você Sabia?
Ultima Online
Criar um jogo é muito mais complexo do que parece. São milhares, às vezes, milhões de linhas de código. Isso não é exagero! Apenas o jogo Ultima Online possui 6.006.313 linhas de programação, totalizando 25.103.295 palavras
Pac Man
Apenas no ano de 1982, o clássico Pac Man vendeu mais de 400 mil máquinas de fliperama em todo o mundo e recebeu cerca de 7 bilhões de moedas nestas máquinas. Saiba mais.
Duck Hunt
Ao completar o nível 99 do jogo Duck Hunt, para Nintendo, o jogo retorna ao primeiro nível, mas um bug impede que se acerte os patos neste recomeço. Este é um exemplo do que é chamado no mundo dos games de "Kill Screen".
River Raid
O épico jogo River Raid, do Atari, foi desenhado e boa parte de sua programação foi feita por uma mulher: Carol Shaw, uma excelente programadora e funcionária da Activision em 1982. Saiba mais sobre a história deste incrível jogo, aqui.
Space Invaders
O título Space Invaders, lançado em 1980, fez tanto sucesso em todo o mundo que as pessoas compravam o console Atari apenas para poderem jogá-lo em casa. Saiba mais sobre este incrível título clicando aqui.










