Você está na página 1de 2

RELATÓRIO

PROGRAMAÇÃO FUNCIONAL EM 40 MINUTOS


Russ Olsen

O QUE É PROGRAMAÇÃO FUNCIONAL?


As linguagens de programação são repletas de nomes que podem receber
um valor, de lógica condicional, de iterações, de procedimentos, de diferentes tipos
de dados, de indentação, de namespaces, de arrays, de hashes, de classes (poo),
de herança (poo) e de métodos (poo), que por sua vez formam um programa.
Para que a programação funcional seja aplicada é necessário reestruturar
esta base das linguagens de programação. A maioria das linguagens possui esse
conceito de orientação a objetos, mas para uma linguagem ser funcional por
completo, deverá excluir o paradigma orientado a objetos.
Na programação funcional utiliza-se funções. As funções são valores
manipuláveis com resolução imutável. Elas recebem um conjunto como entrada e
mostram um conjunto de saída. As funções podem ter várias regras que levam ao
resultado almejado, assim como as funções que os matemáticos utilizam.
Dessa forma, apenas será pensado nos elementos de entrada, os
parâmetros, e a saída será produzida pela função. Isso significa que não há efeitos
colaterais, pois as funções farão tudo, elas podem atualizar bancos de dados,
podem deletar arquivos, podem fazer cálculos de simples a complexos, etc.
Uma coisa interessante ao usar funções é que pode-se usar variáveis dentro
delas, o que torna desnecessário qualquer mudança nas variáveis. Mas existe um
problema, se a variável for, por exemplo, uma lista, ela pode ser modificada a
qualquer momento. Para resolver isso, apenas será usado variáveis imutáveis.
Assim, nenhum dado será modificado, e para contornar a necessidade de modificar
uma variável, será utilizada a técnica de fazer cópia de uma variável, podendo
mudar esta nova variável sem alterar a pré existente.
A partir disso, surge um novo problema: cópias, cópias e mais cópias.
Felizmente desenvolveram um método chamado Persistent Data Structure, onde
existe uma ramificação organizada formada por cópias limitadas de uma variável
primária. Isso impossibilita a criação de variáveis repetidas e desnecessárias. A
imutabilidade faz parte da Programação Funcional junto com as funções.
Outro problema é que não há mutabilidade, e o mundo funciona de forma
mutável. Então uma ponte entre o programa funcional e o mundo mutável deve ser
feita. Uma das pontes são os atoms, eles armazenam dados que podem ser
modificados por funções para que o dado seja atualizado. Outra ponte são os
agents/actors, eles recebem funções que serão executadas em sequência. Atoms e
agents/actors (as pontes da mutabilidade) fazem parte da Programação Funcional.
COMO É SER UM PROGRAMADOR FUNCIONAL?
Aparentemente é uma das melhores formas de programar. Continuará
ocorrendo erros aleatórios, redundância de código, escrita ruim de código e os
bancos de dados podem continuar sem funcionar. Uma das melhores coisas sobre o
código funcional é que as threads não podem subscrever o código por ser imutável
e uma thread não pode processar o que outra thread está processando do código,
pois a função faz entrada em uma thread e faz a saída na mesma thread.
No começo pode parecer difícil gerenciar tantas regras, mas com o tempo
passa a ser perceptível o quão fácil é para entender o código e o raciocínio em
relação ao código mais simples. Um programador funcional basicamente escreve
funções em todo o expediente, além de alguns protocolos, pontes, record types e
multimétodos. Com o tempo se torna algo simples de fazer.

PROGRAMAÇÃO FUNCIONAL FUNCIONA?


Russ Olsen introduz Pedestal.io, que é baseado em Programação Funcional,
sendo formado por 96.1% de funções. É um conjunto de bibliotecas open source
que é amplamente utilizado pelo mundo. A conclusão é que funciona muito bem.
Pode-se adicionar quantas funções forem necessárias e cada uma funciona de
forma independente. Apenas deve-se testar as funções para que tudo funcione.

Você também pode gostar