Então, o que é programação funcional?
A programação funcional trata da separação de interesses, o que a programação orientada a objetos também faz,
certo?
É tudo uma questão de empacotar nosso código em partes separadas para que tudo seja bem organizado em cada parte de nosso
código.
E cada parte é organizada de uma forma que faz sentido com base na funcionalidade.
Portanto, quando dizemos separação de interesses, queremos dizer que cada parte se preocupa consigo mesmo com uma coisa em que é
boa.
Lembramos em nossa seção de programação orientada a objetos como tínhamos classes para dividir atributos
e métodos de, digamos, uma classe de assistente e uma classe de arqueiro.
E a programação funcional também tem essa ideia de separar interesses, mas também separa dados e
funções.
É assim que um programador funcional vê o mundo.
Em vez de combinar métodos e atributos, nós os separamos porque são duas coisas distintas.
Existem dados e esses dados têm interação e ação.
Mas não vamos combinar dados e funções como uma peça e um objeto, como vimos na programação orientada a
objetos.
Agora, não há uma definição correta para o que é e o que não é funcional.
Mas geralmente as linguagens funcionais dão ênfase à simplicidade no que diz respeito aos dados e funções,
porque na maioria dos paradigmas de programação funcional, não temos essa ideia de classes e objetos.
Em vez disso, as funções operam em estruturas de dados bem definidas, como listas e dicionários que vimos, em
vez de pertencer a estrutura de dados a um objeto.
Mas, no final do dia, o objetivo de um paradigma de programação funcional é o mesmo do paradigma orientado a
objetos.
É a ideia de tornar nosso código limpo e compreensível.
Fácil de estender.
Ou seja, podemos aumentar nosso código e torná-lo cada vez melhor e ter outros que venham e estendam nosso código.
É mais fácil de manter.
Ele mantém nosso código seco para que não nos repetamos, bem como mantém nossa memória de código eficiente porque
não estamos armazenando informações em todos os lugares.
Agora, quando chegamos à programação funcional, temos um pilar muito importante e, ao contrário da programação orientada
a objetos, onde tínhamos esses quatro pilares de encapsulamento, abstração, herança e polimorfismo, se você quiser
quebrar as coisas na programação funcional, tudo se resume a este conceito de funções
puras.
E isso é algo que vamos explorar nos próximos vídeos.
Mas a ideia aqui é que há uma separação entre os dados de um programa e o comportamento de um programa.
Então, vamos descobrir mais sobre funções puras.
O que eles querem dizer?
O que eles são?