Mais comentada

As vantagens da Programação Funcional (PF)

Este artigo tem como objetivo mostrar as vantagens da Programação Funcional, apresentando também, alguns conceitos importantes sobre a mesma.

1. Introdução

Em 1930 Alonso Church desenvolveu o cálculo lambda, que nada mais é do que um modomuito formal de descrever um cálculo de uma função. Já em 1950 John McCarthy criou a linguagem de programação Lisp baseada em lambda, essa linguagem foi a primeira linguagem de programação funcional. Mesmo não sendo uma linguagem de programaçãopuramente funcional,Lispintroduziu a maioria das caracter ́ısticas hoje encontradas nasmodernas linguagens de programação funcional [luís 2018]. Em 1980 começou o desenvolvimento da linguagem de programação Haskell, uma linguagem de programação lazy e open source.

Programação funcional  tido como um paradigma que trata a computação como uma avaliação de funções matemáticas e que evita estados ou dados mutáveis. Ela enfatiza a aplicação de funções, em contraste da programação imperativa, que enfatiza mudanças no estado do programa [Souza 2017]. O paradigma de uma linguagem de programação é a sua identidade. Corresponde a um conjunto de características que, juntas, definem como ela opera e resolve os problemas [Tedesco 2016].

O uso da programação funcional é adequado para computações matemáticas, in-teligência artificial e processamento paralelo [Informant 2014]. Além de que, diferente da linguagem imperativa, a linguagem funcional é mais legível e gerenciável. O que é feito imperativamente, é possível fazer de forma mais clara, elegante e gerencíavel, no sentido de dar suporte com programação funcional. Assim com a programa funcional a imperativa é um paradigma de programação, porém, esta descreve a computação como ações, enunciados ou comandos que mudam o estado ou variáveis. 

2. Vantagens da Programação Funcional

Para [Moreira et al. 2018] o uso da programação funcional é frequente no ambiente acadêmico, porém, algumas linguagens de programação já são utilizadas na industria e no comércio, como: Haskell, F, R, Erlang, Mathematica J e K e XSLT.

Na programação funcional o desenvolvedor deve escrever funções e o software funcionar com base na interação entre essas expressões matemáticas, ou seja, ele deve descrever o que espera que aconteça, desta forma, o computador resolve o problema descrito pelo programador da melhor maneira possível. Este tipo de programação gera um código completo e autossuficiente que pode trazer diversos benefícios ao trabalho dos desenvolvedores. Além de contar com algumas outras vantagens listadas.

1. Visualização dos programas como funções uniformes;

2. Notação concisa;

3. Facilidade nos testes e na busca por bugs;

4. Uso de gerenciamento de memória automático;

5. Tratamento das funções como dados;

6. Possui grande flexibilidade;

7. Semântica simples.

Como as funçõs são mais fáceis de serem avaliadas de forma isolada, os testes podem ser direcionados para expressões específicas, possibilitando programas mais concisos e imunes a erros [Souza 2017]. Neste tipo de programação o risco de erro na codificação é menor pois cada componente é completamente isolado. Outro ponto importante, segundo [Moreira et al. 2018] a recursividade usando em funções de primeira classe permite que as provas para correção sejam mais simples do que normalmente espelhar a e strutura do código.

Alguns conceitos sobre programação funcional que devem ser utilizados para desenvolvimento, conceitos estes muito importantes, como literais e construtores.[Malaquias 2014] os literais são expressões com sintaxe especial para escrever alguns valores. Já construtores constantes são identificadores começando com letra maiúscula. Ainda sobre conceitos, temos funções lambdas, que são funções anônimas que podem ser usadas como qualquer outro valor de primeira classe (números, caracteres, tuplas, listas e funções). Já recursividade é um mecanismo de programação no qual uma definição de função ou de outro objeto refere-se ao próprio objeto sendo definido. Desta forma, função recursiva é uma função que é definida em termos de si mesma. Temos estes e outros conceitos, como casamentode padrão, expressões condicionais, polimorfismo, processamento de listas, etc.

Casamento de padrão é o ato de verificação da presença de um padrão em um dado ou em um conjunto de dados, tal é utilizado para testar se o objeto em questão possui a estrutura desejada. Já expressões condicionais permitem a escolha entre duas alternativas na obtenção do valor da expressão, com base em uma condição. Outro muito importante é o polimorfismo, que o Haskell incorpora uma forma deste que é a sobrecarga de funções, variáveis e literais. Por ultimo, mas não menos importante, processamento de listas, onde a lista é uma estrutura de dados formada por uma sequência de elementos do mesmo tipo.

3. Conclusão

Como conclusão, tem-se que, as linguagens funcionais são bastante fáceis de aprender. Alám de que, uma boa ideia é iniciar por uma linguagem puramente funcional para se familiar com conceitos como funções de ordem superior, recursividade, funções lambda e imaginar soluções de forma diferente da que está acostumado [Estilion 2018]. Temos também que, a programação funcional é um conceito bem antigo, que vem ganhando espaço, porém ela ainda é muito pouco utilizada.

Referências

Informant (2014). Conheça a programação funcional!

luís, J. (2018). Começando com programação funcional.

Malaquias, J. R. (2018). Programação funcional em haskell.

Moreira, R. A. F., Passos, A. V. C., Neto, O. R. e Júnior, J. A. (2018). Trabalho de programação funcional: linguagem de programação

Souza, E. (2017). Programação funcional para iniciantes.

Tedesco, K. (2016). Linguagens e paradigmas de programação

As opiniões veiculadas nos artigos de colunistas e membros não refletem necessariamente a opinião do Administradores.com.br.

Avalie este artigo:
(0)