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:

  • fator fica preso no escopo
  • A função interna lembra desse valor
  • Isso é uma closure
Todo currying usa closures, mas nem toda closure é currying.

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
Currying é ferramenta, não religião.

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.

  • Gabinetes

  • Placas-Mãe

  • Processadores

  • Memória

  • Fontes

  • Drives Ópticos

  • Discos Rígidos

  • SSD

  • Placas de Som

  • Placas de Vídeo

Você Sabia?

O console Nintendo Entertainment System (NES), da Nintendo, detém o recorde de videogame mais clonado em todo o mundo. Já foram catalogados mais de 300 aparelhos diferentes capazes de reproduzir seus jogos! Saiba mais sobre ele aqui.


O jogo Final Fantasy X para o Sony Playstation 2 vendeu, apenas no dia do seu lançamento, 1.455.732 cópias, estabelecendo um recorde de vendagem para as primeiras 24 horas de um game. Méritos da SquareSoft, que desenvolveu um excelente produto!


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.


O primeiro jogo a fazer uso de uma Inteligência Artificial foi o Mouse in the Maze, criado em 1955, na União Soviética. Você pode saber mais sobre ele clicando aqui.


A Máquina de Pascal, criada em 1642 pelo filósofo, físico e matemático francês Blaise Pascal, é reconhecida como o primeiro computador do mundo e ele foi criado com o objetivo de calcular impostos. Saiba mais.