Blog.

Currying

Cover Image for Currying

Vamos entender o que é a descrição desta técnica

Uma função curried usa vários parâmetros, um de cada vez, pegando o primeiro argumento e retornando uma série de funções, cada uma das quais leva o próximo argumento até que todos os parâmetros tenham sido fixados e possam ser concluídos, onde o valor resultante é retornado.

Isso significa que uma função agora precisa receber uma sequência de argumentos exclusivos, podemos representar isso com algo como o código abaixo:

const multiply = (a) => (b) => a * b
multiply(2)(5) // 10

Em uma função curried você deve chamar a função passando um argumento por vez, se você não fizer isso o resultado da sua função será a próxima função, no exemplo acima se passarmos "2" e "5" no primeiro chamaremos obteremos a função B como resultado.

Ok, é muito confuso, mas você entendeu, agora você sabe o que é Currying em JavaScript, então o que você pode fazer com esse conhecimento agora?

Aqui está um exemplo simples:

const multiply = (a) => (b) => a * b
const multiplyByTwo = multiply(2)
multiplyByTwo(5) // 10

A função multiplyByTwo agora lembra seu argumento para sempre, então precisamos executar uma vez a funçãomultiply para pegar a parte do código, com isso podemos salvar novas funções na memória que leva menos tempo para processar seus resultados.