Escolar Documentos
Profissional Documentos
Cultura Documentos
1. As funções puras nos dizem que uma função terá sempre a mesma saída a partir de
uma mesma entrada. Sabendo disso, pense em uma solução para a seguinte questão:
Você é assessor de TI do gabinete de um vereador de sua cidade. Minutos antes de
uma cerimônia, ele solicita que você insira a string "Sr." na frente do nome de
todos os 200 convidados
para o evento. Essa lista é extraída do sistema que você administra e precisa ser
deixada na portaria para aguardar a chegada dos convidados.
Qual das alternativas abaixo indica uma função que você utilizaria para resolver
essa situação em nível de código?
R: B. Função map.
Dentre as alternativas, a função map seria a ideal para auxiliar em uma solução de
código que varreria a lista de convidados e, a partir daí, inseriria uma expressão
lambda para inserir a
string "Sr.". A função filter iria filtrar dados, sendo que seria necessário
aplicá-la em todos os nomes. A função zip retorna uma lista de tuplas e é ideal
para a criação de conjuntos de dados.
A função reduce, por sua vez, faz o somatório dos elementos do arry, e a função
currying recebe parâmetros parcialmente e retorna uma nova função.
3. Davi começou a trabalhar no NTI da Embrapa de sua cidade e está tendo seus
primeiros contatos com linguagens funcionais. Seu chefe disse que ele irá trabalhar
nos projetos de
pesquisa genética de gado. Davi, atualmente, programa em Python, então seu superior
lhe deu uma apostila de programação funcional e o seguinte problema para resolver:
Faça uma função que retorne todos os dados negativos dessa lista, que se refere ao
aumento de peso do gado no último semestre.
Qual das expressões abaixo conseguiria retornar o que foi pedido para Davi?
4. Um sistema eficiente tem em suas linhas conceitos que permitem herdar, abstrair
e modificar atributos e métodos. Os conceitos de programação funcional, por meio
da pureza de
funções, elevam o nível de abstração de uma aplicação, entregando muita qualidade.
Nesse sentido, analise qual das alternativas a seguir está correta em relação à
função abaixo:
def analisa_func(elemento, indice):
R: C. Trata-se de uma função impura, pois a lista chamada elemento sofre mudança a
cada execução da função, conforme o incrementador logo abaixo.
Trata-se de uma função impura, pois a lista chamada elemento é incrementada a cada
execução da função. Um detalhe importante da programação Python é que ela não é uma
linguagem
funcional, mas permite implementar diversos conceitos de programação funcional.
Função pura é imutável e não tem alteração de estado, essa é a definição.
R: D. Função currying.
Ele poderá implementar a função currying, para receber todos os parâmetros de
multiplicação e soma e executá-los um a um, retornando uma nova função até chegar a
um único
argumento. A função filter trata de listas filtrando dados a partir de uma dada
instrução. Compreensão de listas é utilizada para realizar cálculos complexos em
listas com verificação de
intervalos e condições matemáticas mais complexas. A função map varre uma dada
estrutura (lista, tuplas e outras) para executar individualmente as instruções nos
elementos. A função
zip reúne elementos e retorna listas de tuplas.