·

Cursos Gerais ·

Linguagens de Programação

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta

Texto de pré-visualização

Implementação Aplicações da Programação Funcional Conforme estudamos nas últimas aulas o Cálculo Lambda criado por Alonzo Church serve como base para a Programação Funcional que conhecemos hoje Com base nestes conceitos funcionais diversas linguagens de programação adotaram algumas características funcionais em complemento à sua estrutura sintática usual Um dos exemplos clássicos de aplicação das estruturas funcionais em linguagens de programação modernas são os manipuladores de listas map filter e reduce1 Em resumo as funções citadas são descritas a seguir map mapeamento de listas A partir de uma lista cria uma nova lista com atributos novos ou transformações dos atributos Exemplo 1 dada uma lista de endereços pode retornar uma lista de cidades e estados apenas Exemplo 2 em uma lista de valores inteiros retornar o dobro de cada valor na mesma posição filter filtrar elementos de listas Seleciona elementos de uma lista a partir de uma determinada característica Exemplo 1 dada uma lista de endereços pode retornar uma lista de cidades paranaenses Exemplo 2 em uma lista de valores inteiros retorna apenas os números pares reduce transformar elementos de uma lista Realiza operações nos elementos de uma lista gerando valores únicos Exemplo 1 dada uma lista de cidades e população retorna a quantidade de habitantes total Exemplo 2 em uma lista de valores inteiros retorna a média desses números A partir destes conceitos map filter reduce e os demais já estudados sobre programação funcional construa um programa que aplique a programação funcional em algum problema Instruções Não precisa ser um software complexo Apenas um script é o suficiente para demonstrar os conceitos vistos Escolha a linguagem de sua preferência Não é preciso utilizar obrigatoriamente uma linguagem de programação funcional Basta uma linguagem que dê suporte ao que foi pedido e caso não tenha você pode implementar estes conceitos Linguagens atuais como Java8 C Javascript Python Go ou PHP possuem total suporte à funções lambda e ao map filter e reduce Escolha o problema que quiser resolver A ideia é mostrar um pequeno problema e sua solução utilizando programação imperativa procedural ou orientada a objetos A partir disso apresentar uma solução utilizando conceitos funcionais Entrega Trabalho Individual Código fonte no Github ou Gist se for um script com apenas um arquivo Um pequeno relatório explicando o problema e qual a vantagem de aplicar a implementação funcional na sua resolução 1 Mais informações teóricas em LecturenotesMIT6005F11lec15 e também em freecodecamporg javascriptmapreduceandfilterexplainedwithexamples