Ruby · Intermediário · Inglês · Técnico
curry
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] # => 3Exemplos
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.