Ir ao conteúdo
  • Cadastre-se
davidsfernandes2

Outro Utilidades do paradigma de programação funcional

Recommended Posts

     Paradigmas de programação são construídos com visões diferentes. A programação estruturada enfatiza utilizar subrotinas sequenciadas em blocos. A programação orientada a objetos abstrai entidades reais (ou não) em objetos que possuem atributos e métodos específicos. A programação imperativa descreve computações em estados, que são alterados por ações e comandos. Por característica, todas essas citadas acima, abordam e atuam sobre problema olhando para “como” a solução será feita. Contudo, seber como um problema dever ser solucionado, nem sempre é trivial.

 

     O paradigma de programação funcional surgiu para alterar a abordagem do problema, abordagem essa diferente dos demais paradigmas. Saber “como” um problema deve ser atacado nem sempre é uma tarefa simples. Pode ser mais simples conhecer o problema, em vez de conhecer sua solução previamente. Como auxílio, se tem a programação funcional. Ela aborda soluções olhando para “qual” é o problema em questão, descartando inicialmente a necessidade de conhecer a solução. Um bom exemplo, é a codificação do algoritmo de ordenação Quick Sort, que muitos conhecem. Codificar Quick Sort nas demais linguagens como C++ ou Java demandam extensas linhas, justamente por codificar “como” a ordenação será feita. Contudo, é possível codificar o Quick Sort em Haskell (uma linguagem de programação funcional) com apenas 6 linhas, olhando simplesmente para a definição do algoritmo, como pode ser visto abaixo.

 

> qsort []    = []
> qsort (x:xs) = qsort small ++ mid ++ qsort large
>   where
>     small = [y | y<-xs, y<x]
>     mid = [y | y<-xs, y==x] ++ [x]
>     large = [y | y<-xs, y>x]

 

Muito mais simples, não é mesmo?!

 

     Além de mudar a abordagem do problemas objetos para solucioná-los, o paradigma de programação funcional possui diversas outras vantagens e características. Abaixo estão algumas delas:

- na programação funcional não há alocação explícita de memória ou variáveis, como vemos em C++. A alocação ocorre automaticamente quando uma função em invocada, alocando espaço apenas para os parâmetros que a invocam e para seu valor de retorno.

- laços de repetição (for, while, do) inexistem explicitamente na programação funcional. Repetições de chamadas de comandos é possível através recursividade. Funções recursivas invocam a si mesma, permitindo que uma operação seja feita várias vezes. Abaixo, é exemplificada a impressão em tela de todos os elementos de uma lista. Enquanto ela não for vazia, será impresso o primeiro elemento da lista.

 

> imprimeLista [ ] = [ ]
> imprimeLista (x:xs) = print x imprime xs

 

- funções podem servir de parâmetro para outras funções. Essas são chamadas de funções de ordem superior. No exemplo abaixo, a função soma é usada como parâmetro da função zipWith’

> zipWith' (+) [4,2,5,6] [2,6,2,3]

[6,8,7,9]

 

Nao ha requisitos magníficos para aprender a programar utilizando o paradigma funcional. As linguagens de programacao funcional são bem simples de adaptar e aprender. Basta apenas iniciativa e força de vontade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×