Logo Passei Direto
Buscar

Prova de Programação Funcional

User badge image

Enviado por Douglas Willamis em

páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Prova de Programação Funcional 
 
 Funções de Alta Ordem: 
 Em programação funcional, o que são funções de alta ordem e como são utilizadas? 
 A) Funções que operam em números reais; aplicadas em loops for. 
 B) Funções que recebem ou retornam outras funções; passadas como argumentos. 
 C) Funções com grande número de linhas de código; utilizadas em casos especiais. 
 D) Funções que lidam com exceções; aplicadas em tratamento de erros. 
 
 Imutabilidade: 
 Por que a imutabilidade é uma característica importante na programação funcional? 
 A) Facilita a alteração dinâmica de variáveis. 
 B) Evita efeitos colaterais indesejados. 
 C) Aumenta a complexidade do código. 
 D) Torna a execução do programa mais lenta. 
 
 Recursão: 
 Na programação funcional, como a recursão é frequentemente utilizada em comparação com a 
programação imperativa? 
 A) É evitada devido à complexidade. 
 B) É mais comum devido à ausência de loops. 
 C) É usada apenas para casos triviais. 
 D) É reservada para funções de alta ordem. 
 
 Expressões Lambda: 
 O que são expressões lambda e qual sua função na programação funcional? 
 A) Variáveis temporárias; reduzem a repetição de código. 
 B) Funções anônimas; simplificam a sintaxe. 
 C) Operadores matemáticos; melhoram a eficiência. 
 D) Estruturas de controle; substituem declarações if. 
 
 Mapeamento e Filtragem: 
 Como o mapeamento e a filtragem são aplicados em listas na programação funcional? 
 A) Mapeamento altera a ordem dos elementos, e filtragem remove elementos. 
 B) Mapeamento aplica uma função a cada elemento, e filtragem mantém elementos que atendem 
a uma condição. 
 C) Ambos são sinônimos e podem ser usados indistintamente. 
 D) Mapeamento e filtragem são conceitos obsoletos em programação funcional. 
 
 Monads: 
 Em programação funcional, o que são monads e qual seu propósito? 
 A) Estruturas de dados imutáveis; facilitam a manipulação de strings. 
 B) Padrões de design; simplificam a implementação de herança. 
 C) Tipos especiais de funções; permitem efeitos colaterais controlados. 
 D) Subtipos de classes; melhoram a organização do código. 
 
 Currying: 
 Explique o conceito de currying na programação funcional e forneça um exemplo prático. 
 A) Divisão de funções em partes menores; ex.: dividir uma lista em subconjuntos. 
 B) Transformação de funções com múltiplos argumentos em cadeias de funções com um único 
argumento; ex.: soma(x)(y). 
 C) Troca de argumentos em uma função; ex.: inverter a ordem de elementos em uma lista. 
 D) Agrupamento de funções relacionadas em um único módulo; ex.: encapsular operações 
matemáticas. 
 
 Tipos de Dados Imutáveis: 
 Por que a imutabilidade de tipos de dados é enfatizada na programação funcional? 
 A) Torna o código mais difícil de entender. 
 B) Facilita a modificação dinâmica de valores. 
 C) Evita efeitos colaterais e simplifica o rastreamento de mudanças. 
 D) Aumenta a eficiência em operações de leitura. 
 
 Pattern Matching: 
 O que é pattern matching e como é utilizado na programação funcional? 
 A) Comparação de padrões de código; usado para identificar bugs. 
 B) Correspondência de padrões em dados; simplifica a manipulação de estruturas complexas. 
 C) Troca de padrões em tempo de execução; melhora o desempenho. 
 D) Transformação de padrões de design; utilizado em design gráfico. 
 
 Funções Puras: 
 Explique o conceito de funções puras na programação funcional e por que são importantes. 
 A) Funções que operam apenas em dados numéricos; simplificam a aritmética. 
 B) Funções que não têm efeitos colaterais; facilitam o teste e compreensão do código. 
 C) Funções que não requerem argumentos; reduzem a complexidade. 
 D) Funções que retornam múltiplos valores; melhoram a expressividade do código. 
 
 Lazy Evaluation: 
 O que é a avaliação tardia (lazy evaluation) e como ela difere da avaliação estrita? 
 A) Avaliação que ocorre apenas quando o código é executado; oposta à avaliação estrita. 
 B) Avaliação que ocorre em tempo de compilação; usada para otimizar o desempenho. 
 C) Avaliação que prioriza operações de maior complexidade; mais eficiente que a avaliação estrita. 
 D) Avaliação que ignora a ordem de execução; prejudica a performance. 
 
 Folding (Redução): 
 Como a função de redução (fold) é aplicada em programação funcional? 
 A) Combina elementos de uma lista em uma única soma; ex.: somar todos os elementos. 
 B) Separa uma lista em subconjuntos menores; ex.: dividir elementos pares e ímpares. 
 C) Ordena uma lista de forma decrescente; ex.: organizar em ordem alfabética. 
 D) Substitui elementos de uma lista por valores calculados; ex.: substituir por seus quadrados. 
 
 Funções de Ordem Superior: 
 O que são funções de ordem superior e como elas diferem de funções comuns? 
 A) Funções que operam apenas em números inteiros; semelhantes a funções regulares. 
 B) Funções que recebem outras funções como argumentos ou retornam funções; mais flexíveis e 
poderosas. 
 C) Funções que não requerem argumentos; mais eficientes que funções regulares. 
 D) Funções que aplicam padrões de design específicos; usadas para casos especiais. 
 
 Monoides: 
 Explique o conceito de monoides em programação funcional e forneça um exemplo prático. 
 A) Estruturas de dados imutáveis; ex.: listas que não podem ser alteradas. 
 B) Tipos especiais de funções; ex.: funções que lidam apenas com inteiros. 
 C) Conjuntos de elementos com operações de concatenação e identidade; ex.: soma de números. 
 D) Padrões de design para tratamento de exceções; ex.: tratamento de erros em tempo de 
execução. 
 
 Tail Recursion: 
 O que é tail recursion e como ela contribui para a eficiência em programação funcional? 
 A) Recursão que ocorre na cauda da função; evita o estouro da pilha de chamadas. 
 B) Recursão que utiliza apenas a cabeça da lista; simplifica a manipulação de dados. 
 C) Recursão que prioriza a execução de operações na cabeça da função; aumenta a complexidade. 
 D) Recursão que ocorre apenas em funções de ordem superior; requer mais memória. 
 
 Monad Transformers: 
 Explique o conceito de monad transformers e como eles são aplicados na composição de monads. 
 A) Transformadores que alteram o tipo de monads; facilitam a manipulação de strings. 
 B) Estruturas que combinam monads diferentes; usados para facilitar a gestão de estado e 
exceções. 
 C) Monads que operam em múltiplas camadas; aplicados em casos avançados de recursão. 
 D) Transformadores que convertem funções regulares em monads; utilizados para aumentar a 
eficiência. 
 
 Efeitos Colaterais Controlados: 
 Como a programação funcional lida com efeitos colaterais e por que isso é importante? 
 A) Ignora efeitos colaterais; prejudica a expressividade do código. 
 B) Controla efeitos colaterais usando monads; melhora a previsibilidade do programa. 
 C) Incentiva efeitos colaterais em funções regulares; simplifica o desenvolvimento. 
 D) Elimina efeitos colaterais apenas em funções puras; mantém a complexidade. 
 
 Compreensão de Listas: 
 O que é compreensão de listas (list comprehension) e como ela é aplicada em programação 
funcional? 
 A) Construção de listas por meio de loops for; simplifica a lógica de iteração. 
 B) Criação de listas usando expressões lógicas; simplifica a manipulação de condições. 
 C) Operações de filtragem e mapeamento em listas; facilita a criação de novas listas. 
 D) Combinação de listas com operadores lógicos; usado para realizar operações de união. 
 
 Promessas (Promises): 
 Em linguagens que suportam programação funcional, como promessas (promises)podem ser 
usadas para lidar com assincronia? 
 A) Manipulação direta de eventos de temporização; evita a necessidade de promessas. 
 B) Encadeamento de funções em callbacks; aumenta a complexidade do código. 
 C) Resolução de promessas para lidar com resultados futuros; simplifica o tratamento assíncrono. 
 D) Substituição de promessas por chamadas síncronas; melhora o desempenho. 
 
 Type Classes: 
 O que são type classes em programação funcional e como elas facilitam a polimorfismo? 
 A) Classes abstratas para definição de tipos de dados; usadas para encapsular dados complexos. 
 B) Módulos que agrupam tipos de dados relacionados; melhoram a organização do código. 
 C) Abstrações que definem operações comuns para tipos de dados específicos; permitem 
polimorfismo ad-hoc. 
 D) Interfaces gráficas que representam tipos de dados; facilitam a interação com o usuário.

Respostas disponíveis nesse material