Café com ADM
#

Utilidades do paradigma de programação funcional

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 “qual” o problema em questão

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.

ExibirMinimizar
CEO Outllok, A era da liderança resiliente. Confira os Resultados.