DEV Community

Gabriel J
Gabriel J

Posted on

O que é Currying e para o que serve?

Currying é uma técnica de programação que permite que uma função com vários argumentos seja transformada em uma sequência de funções que recebem um único argumento cada. Essa técnica recebeu esse nome em homenagem ao matemático Haskell Curry, que a desenvolveu seu trabalho na teoria da computação.

Ao usar o currying, podemos criar funções mais especializadas e reutilizáveis. Em vez de passar todos os argumentos de uma vez, a função pode receber um argumento de cada vez, retornando uma nova função para cada um. A cada nova chamada, a função retornada recebe um novo argumento até que todos os argumentos sejam recebidos e o resultado seja retornado.

Esse recurso é perfeito para Utilização de recursos a medida que nos obtemos eles.

Por exemplo, vamos considerar uma função que recebe dois argumentos e retorna sua soma:

Image description

Podemos transformar essa função em uma função curried da seguinte forma:

Image description

Devemos chamar a função da seguinte maneira:

Image description

Ao chamar "soma(2)", a função retorna uma nova função que espera o segundo argumento b. Quando chamamos essa nova função com 3, ela retorna o resultado 5.

Uma das principais vantagens do currying é a capacidade de reutilizar funções. Por exemplo, podemos criar uma função adiciona5 que adiciona + 5 a qualquer número:

Image description

Isso é especialmente útil quando estamos trabalhando com funções que recebem muitos argumentos, pois podemos criar funções mais simples e fáceis de entender.

Outra vantagem do currying é a possibilidade de criar funções parcialmente aplicadas. Isso significa que podemos passar alguns argumentos para a função e receber uma nova função que espera os argumentos restantes. Por exemplo:

Image description

Podemos criar funções parcialmente aplicadas para criar funções mais flexíveis e reutilizáveis.

Resumindo, o currying é uma técnica de programação funcional que permite criar funções mais especializadas e reutilizáveis. Ao transformar funções com vários argumentos em sequências de funções que recebem um único argumento cada, podemos criar funções mais simples e fáceis de entender. Além disso, o currying nos permite criar funções parcialmente aplicadas, aumentando a flexibilidade e a reutilização do código.

Top comments (0)