ExpertiDict

Ruby · Intermediário · Inglês · Técnico

curry

/ˈkɝi/método

Método de Proc e Method que transforma uma função de vários argumentos numa cadeia de chamadas parciais. Cada argumento recebido devolve outra função até a chamada final acontecer.

Onde usar

Aparece ao criar variações especializadas de uma lambda, como mais10 a partir de soma. É útil em estilo funcional, mas pouco comum em código Rails.

Em código

soma = ->(a, b) { a + b }
mais10 = soma.curry[10]
p mais10[5]  # => 15
p soma.curry[1][2]  # => 3

Exemplos

I curried the lambda to fix the tax rate.

Apliquei curry na lambda para fixar a alíquota.

Curry returns a new lambda until all arguments arrive.

O curry devolve uma nova lambda até todos os argumentos chegarem.

Cuidado

Em procs com número variável de argumentos é preciso informar a aridade, como curry(3); e não o confunda com aplicação parcial qualquer.

Sinônimos

currying

Origem

Em homenagem ao matemático Haskell Curry.

Veja também

Todos os termos de Ruby