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?
Street Fighter 2
Street Fighter 2, lançado para o Super Nintendo no início dos anos 90, foi o principal responsável pelo aumento nas vendas deste console. Graças ao sucesso do título nos Arcades e à perfeita adaptação ao console, muitos consumidores adquiriram o SNES para jogarem o título em casa. Saiba mais.
Nintendo Wii
Nos primeiros oito dias após o lançamento do console Nintendo Wii foram vendidas 600 mil unidades. Isso equivale a quase um por segundo e estes incríveis números são referentes às vendas apenas nos EUA!
Tetris
Desde o seu lançamento, em 1985, o fantástico jogo Tetris vende pelo menos 70 milhões de unidades por ano em todo o mundo! Os dados são oficiais e fornecidos pela THQ, uma das distribuidoras do título.
Mario e seu bigode
O personagem Mario só possui bigode porque quando ele foi criado, em 1981, a resolução de tela dos equipamentos disponíveis não permitia que fosse desenhada uma boca, então os desenvolvedores fizeram o grande bigode para contornar essa limitação tecnológica.
Civilization
A empresa Take-Two pagou à Infogrames mais de 22 milhões de dólares pelos direitos de Civilization, em novembro de 1994. Ainda sobre este título, Sid Meier, um dos seus fundadores, é o profissional da área dos games mais premiado em todo o mundo.










