Currying é uma técnica baseada no princípio de função matemática, criada por Moses Schönbinkel e Gottlob Frege, difundida principalmente por linguagens de programação funcional, permitindo aplicar parcialmente uma função a algum dos argumentos da função, por se tratar de uma técnica de encadeamento de funções. Sobre essa afirmativa, assinale a alternativa correta.
Questão
Currying é uma técnica baseada no princípio de função matemática, criada por Moses Schönbinkel e Gottlob Frege, difundida principalmente por linguagens de programação funcional, permitindo aplicar parcialmente uma função a algum dos argumentos da função, por se tratar de uma técnica de encadeamento de funções. Sobre essa afirmativa, assinale a alternativa correta.
Alternativas
a) Moses Schönbinkel e Gottlob Frege não foram os criadores da técnica de currying.
b) A técnica de currying não tem sua grande utilização por linguagens funcionais.
c) Aplicar parcialmente uma função está relacionado a aplicação parcial e não a currying.
d) Currying não é uma técnica baseada no conceito matemático de função.
e) Currying não se trata de uma técnica de encadeamento de funções conforme descrito.
Explicação
A afirmação do enunciado mistura ideias corretas com uma caracterização incorreta.
-
O que é currying (conceito correto): currying é a transformação de uma função que recebe múltiplos argumentos (por exemplo, ) em uma sequência de funções unárias (de um argumento), algo como . Isso é um conceito matemático ligado a funções e é muito usado em linguagens funcionais.
-
Aplicação parcial vs currying: a aplicação parcial é o ato de fixar alguns argumentos de uma função e obter outra função mais específica. Isso frequentemente é facilitado por currying, mas não é “outra técnica” totalmente desconectada; elas são relacionadas.
-
Onde está o erro principal do enunciado: dizer que currying “se trata de uma técnica de encadeamento de funções” é impreciso. Encadeamento (ou composição/pipe) é outra ideia: pegar a saída de uma função e alimentar a próxima (ex.: ). Currying, por sua vez, é reorganizar como os argumentos são recebidos, não encadear funções por composição.
Assim, dentre as alternativas, a única que corrige o ponto claramente errado na descrição é a que nega que currying seja uma técnica de encadeamento de funções.
Alternativa correta: (e).