0% acharam este documento útil (0 voto)
76 visualizações2 páginas

Programação Funcional Currying

O documento discute a técnica de programação funcional conhecida como currying. Currying permite dividir funções com múltiplos parâmetros em cadeias de funções de um único parâmetro. Isso evita erros ao chamar funções parcialmente e dá mais controle aos desenvolvedores sobre como as funções são aplicadas. Closures também são discutidas como funções que tem acesso às variáveis do escopo pai.

Enviado por

leonardo lima
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
76 visualizações2 páginas

Programação Funcional Currying

O documento discute a técnica de programação funcional conhecida como currying. Currying permite dividir funções com múltiplos parâmetros em cadeias de funções de um único parâmetro. Isso evita erros ao chamar funções parcialmente e dá mais controle aos desenvolvedores sobre como as funções são aplicadas. Closures também são discutidas como funções que tem acesso às variáveis do escopo pai.

Enviado por

leonardo lima
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 2

Programação funcional: currying

1. Currying permite quebrar uma função de aridade superior a 1 em uma cadeia de


funções de aridade 1. Nesse caso, se há uma função com três parâmetros, para
realizar um cálculo e não
utilizar a técnica de currying, ao enviar somente dois parâmetros na chamada da
função, há como retorno:

R: B. erro de retorno, pois a função necessita que sejam informados os três


parâmetros.
Neste exemplo, por não estar utilizando a técnica de currying, haverá um erro no
retorno da função, pois ela está preparada para trabalhar com três parâmetros e a
falta de um vai
ocasionar erro de processamento. Não será enviado retorno parcial, porque isso só
seria possível utilizando currying e, muitas vezes, será possível, dependendo do
tipo de dado, invocar a
função sem problemas. É preciso enviar sempre os três parâmetros, mesmo que um não
seja utilizado, e o erro de retorno não está associado somente por ser uma função
de cálculo.

2. Currying é uma técnica baseada no princípio de função matemática, criada por


Moses Schönfinkel 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.

R:C. Aplicar parcialmente uma função está relacionado a aplicação parcial e não a
currying.
Aplicar parcialmente uma função está mais relacionado a aplicação parcial do que ao
conceito de currying. Moses Schönfinkel e Gottlob Frege foram os criadores da
técnica, e sua maior
utilização é por linguagens de programação funcionais. É baseada principalmente no
encadeamento de funções, em que uma função retorna outra, e no princípio matemático
de que uma
função é de aridade 1 e implica outras.

3. Closure é um conceito que tem relação com a técnica de currying e três cadeias
de escopo: seu próprio escopo; escopo externo, com acesso às variáveis da função
exterior; e escopo com
acesso às variáveis globais. Assinale a alternativa correta acerca do que são
closures.

R: A. São uma função que tem acesso às variáveis do escopo-pai.


Closures são uma função que tem acesso às variáveis do escopo-pai ou corpo léxico.
Esse conceito não necessita que a linguagem dê suporte a currying, embora permita
implementar
técnica de currying. Não é um recurso exclusivo de linguagens funcionais e também
não é considerado função parcial.

4. Currying e aplicação parcial lidam com parâmetros de funções e podem aplicar


parcialmente seus argumentos. Por isso, é comum uma certa confusão sobre esses
conceitos. Assinale a
alternativa correta acerca da diferença entre currying e aplicação parcial.

R: E. As aplicações parciais não se importam com o número de argumentos.


Em aplicação parcial, não é relevante o número de argumentos. A aplicação parcial
não é considerada uma forma de assincronismo em programação funcional, mas na
aplicação parcial é
possível realizar a chamada de um método sem informar todos os parâmetros. Não é
possível aplicar currying sobre uma função que não tenha um valor fixo de
argumentos. Em currying,
diferentemente de aplicação parcial, sempre vai ser retornada uma função unária.

5. A aplicação da técnica de currying tem algumas vantagens, além de sua aplicação


básica, que é permitir que uma função receba um único argumento e retorne outra
função que recebe o
próximo até ter todos os argumentos necessários. Assinale a alternativa correta
acerca de outro exemplo de vantagem da utilização de currying.

R: A. Permitir aos desenvolvedores um maior nível de controle sobre as funções.


Outra importante vantagem da adoção de currying é permitir aos desenvolvedores um
maior nível de controle sobre suas funções. Currying necessariamente não cria
funções com maior
desempenho e usa encadeamento de funções para atender à necessidade de funções
tradicionalmente n-árias. Não é a única forma de criar reusabilidade em programação
funcional e não
está relacionada com a criação de redes distribuídas.

Você também pode gostar