Currying um proc com argumentos de palavra-chave

Digamos que eu tenho um genéricoProc, Lambda oumethod que usa um segundo argumento opcional:

pow = -> (base, exp: 2) { base**exp }

Agora eu quero curry esta função, dando-lhe umaexp do3.

cube = pow.curry.call(exp: 3)

Há uma ambiguidade aqui, decorrente dos argumentos das palavras-chave e da nova sintaxe de hash, na qual Ruby interpretaexp: 3 como um hash sendo passado como o primeiro argumento,base. Isso resulta na invocação imediata da função, renderizando umNoMethodError quando#** é enviado para o hash.

Definir um valor padrão para o primeiro argumento resultará da mesma forma na invocação imediata da função durante o curry, e se eu marcar o primeiro argumento como necessário, sem fornecer um padrão:

pow = -> (base:, exp: 2) { base**exp }

o intérprete vai reclamar que estou faltando argumentobase quando tento curry oProc.

Como curry uma função com o segundo argumento?

questionAnswers(1)

yourAnswerToTheQuestion