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?
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.
Ábaco
O ábaco é o dispositivo de cálculo mais antigo construído e conhecido pelo homem. Suas formas mais primitivas datam de 400 a.C. e eles foram encontrados na China e na Babilônia. Para saber mais sobre a história dos computadores, clique aqui.
Space Invaders
A partida mais longa do clássico Space Invaders durou incríveis 38 horas e 32 minutos e esta façanha foi conseguida por um jogador de apenas 12 anos! O jogo, claro, podia ser pausado para alimentação e descanso, mas ainda assim o recorde, estabelecido no dia 02/09/1980, ainda não foi quebrado. Saiba mais.
Música tema do Blanka
Até a primeira metade dos anos 90 era bastante comum que as trilhas sonoras dos games fossem criadas por mulheres e a responsável pelas músicas do clássico Street Fighter 2 foi Yoko Shimomura. Segundo ela, o ritmo "Tararirarin" da música tema do personagem Blanka, do Brasil, veio à sua cabeça enquanto ela estava no trem a caminho da Capcom.
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!










