Na programação funcional, que é um paradigma suportado pela ...

Próximas questões
Com base no mesmo assunto
Q2383251 Programação
Na programação funcional, que é um paradigma suportado pela Linguagem Scala, uma das práticas fundamentais é o uso de funções puras.
A principal propriedade que caracteriza uma função pura é a(o)
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: B - ausência de efeitos colaterais.

Na programação funcional, um dos conceitos mais importantes é o da função pura. Uma função é considerada pura quando atende a dois critérios principais:

  • A função sempre produz o mesmo resultado quando é chamada com os mesmos argumentos; ou seja, não depende de dados externos além dos que são passados como parâmetros.
  • A função não causa efeitos colaterais no estado do programa ou sistema. Um efeito colateral é qualquer interação com o mundo externo que possa observavelmente alterar o estado do sistema, como modificar uma variável global, alterar um arquivo ou exibir algo na tela.

A ausência de efeitos colaterais é crucial na programação funcional porque garante a previsibilidade e a transparência referencial, que é a propriedade que permite substituir uma expressão pelo seu valor sem alterar o comportamento do programa. Isso facilita o raciocínio sobre o código, a refatoração e a paralelização de operações, pois não há preocupações com o contexto em que a função está sendo executada.

Vamos analisar por que a Alternativa B está correta:

A proposição de que a principal propriedade que caracteriza uma função pura é a ausência de efeitos colaterais é verdadeira e reflete um dos pilares da programação funcional. Quando uma função é pura, ela não altera o estado do programa ou interage com o mundo externo de forma imprevisível, permitindo que o mesmo input resulte sempre no mesmo output, sem a ocorrência de variações causadas por condições externas.

As demais alternativas não caracterizam uma função pura:

  • Alta coesão (ou baixa, como mencionado na Alternativa A) é desejável em desenvolvimento de software, mas não define a pureza de uma função.
  • Funções puras podem chamar outras funções, desde que essas também sejam puras (eliminando a Alternativa C).
  • Alto acoplamento (Alternativa D) é uma característica indesejada para qualquer tipo de função, seja ela pura ou não, pois dificulta a manutenção e o teste de software.
  • Encapsulamento (Alternativa E) é um conceito de orientação a objetos que não está diretamente relacionado com a definição de funções puras na programação funcional.

Entender bem a definição e as propriedades de funções puras é fundamental para quem deseja trabalhar com linguagens que suportam ou são baseadas no paradigma da programação funcional, como Scala, Haskell e outros.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Letra B - Uma função pura é aquela que não provoca efeitos colaterais, ou seja, ela não muda qualquer estado na aplicação

Uma função pura, em programação, é uma função que produz o mesmo resultado para as mesmas entradas e não tem efeitos colaterais observáveis. Aqui está uma explicação mais detalhada:

Determinismo: Uma função pura sempre produzirá o mesmo resultado quando chamada com os mesmos argumentos, independentemente do contexto em que é chamada. Isso significa que ela não depende de variáveis globais ou estado externo para produzir seu resultado.

Sem efeitos colaterais: Uma função pura não modifica variáveis globais, não altera o estado do sistema, não realiza operações de entrada/saída (como leitura de arquivos ou interação com o usuário) e não causa qualquer outro efeito observável além de retornar um valor. Em outras palavras, ela apenas calcula algo com base em suas entradas e retorna um resultado, sem interagir com o ambiente externo.

Transparência referencial: Uma função pura possui transparência referencial, o que significa que pode ser substituída pelo seu valor de retorno sem alterar o comportamento do programa. Isso facilita a compreensão do código e o teste de unidades, pois o comportamento da função é previsível e isolado.

Funções puras são fundamentais em programação funcional, pois facilitam o desenvolvimento de código mais modular, testável e seguro, uma vez que reduzem a complexidade ao evitar efeitos colaterais indesejados.

Alternativa correta: B - ausência de efeitos colaterais.

Na programação funcional, um dos conceitos mais importantes é o da função pura. Uma função é considerada pura quando atende a dois critérios principais:

  • A função sempre produz o mesmo resultado quando é chamada com os mesmos argumentos; ou seja, não depende de dados externos além dos que são passados como parâmetros.
  • A função não causa efeitos colaterais no estado do programa ou sistema. Um efeito colateral é qualquer interação com o mundo externo que possa observavelmente alterar o estado do sistema, como modificar uma variável global, alterar um arquivo ou exibir algo na tela.

A ausência de efeitos colaterais é crucial na programação funcional porque garante a previsibilidade e a transparência referencial, que é a propriedade que permite substituir uma expressão pelo seu valor sem alterar o comportamento do programa. Isso facilita o raciocínio sobre o código, a refatoração e a paralelização de operações, pois não há preocupações com o contexto em que a função está sendo executada.

Vamos analisar por que a Alternativa B está correta:

A proposição de que a principal propriedade que caracteriza uma função pura é a ausência de efeitos colaterais é verdadeira e reflete um dos pilares da programação funcional. Quando uma função é pura, ela não altera o estado do programa ou interage com o mundo externo de forma imprevisível, permitindo que o mesmo input resulte sempre no mesmo output, sem a ocorrência de variações causadas por condições externas.

As demais alternativas não caracterizam uma função pura:

  • Alta coesão (ou baixa, como mencionado na Alternativa A) é desejável em desenvolvimento de software, mas não define a pureza de uma função.
  • Funções puras podem chamar outras funções, desde que essas também sejam puras (eliminando a Alternativa C).
  • Alto acoplamento (Alternativa D) é uma característica indesejada para qualquer tipo de função, seja ela pura ou não, pois dificulta a manutenção e o teste de software.
  • Encapsulamento (Alternativa E) é um conceito de orientação a objetos que não está diretamente relacionado com a definição de funções puras na programação funcional.

Entender bem a definição e as propriedades de funções puras é fundamental para quem deseja trabalhar com linguagens que suportam ou são baseadas no paradigma da programação funcional, como Scala, Haskell e outros.

Fonte: Gabarito Qconcursos

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo