Logo Passei Direto
Buscar

Prova de Programação Funcional

Ferramentas de estudo

Questões resolvidas

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
details

Libere esse material sem enrolação!

Craque NetoCraque Neto

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

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

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

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

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

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

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

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

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

Questões resolvidas

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.