DEV Community

Gabriel J
Gabriel J

Posted on

3 1 1 1 1

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.

Heroku

Built for developers, by developers.

Whether you're building a simple prototype or a business-critical product, Heroku's fully-managed platform gives you the simplest path to delivering apps quickly — using the tools and languages you already love!

Learn More

Top comments (0)

Image of Quadratic

The best Excel alternative with Python built-in

Quadratic is the all-in-one, browser-based AI spreadsheet that goes beyond traditional formulas for powerful visualizations and fast analysis.

Try Quadratic free

👋 Kindness is contagious

Engage with a wealth of insights in this thoughtful article, valued within the supportive DEV Community. Coders of every background are welcome to join in and add to our collective wisdom.

A sincere "thank you" often brightens someone’s day. Share your gratitude in the comments below!

On DEV, the act of sharing knowledge eases our journey and fortifies our community ties. Found value in this? A quick thank you to the author can make a significant impact.

Okay