Escolar Documentos
Profissional Documentos
Cultura Documentos
FUNCIONAL
Next Page
O QUE É
PROG. FUNCIONAL?
Programação funcional é o
processo de construir software
através de composição de funções
puras, evitando compartilhamento
de estados, dados mutáveis e
efeitos colaterais.
Next Page
DE ONDE VEIO A IDEIA DE Page 02
PROGRAMAÇÃO FUNCIONAL?
A inspiração do paradigma funcional
veio dos matemáticos teóricos que
lidam com grandes abstrações.
Next Page
PRINCÍPIOS Page 03
FUNDAMENTAIS
01 Imutabilidade e Estado
Recursividade e
03
Composição de Funções
Next Page
PRINCÍPIOS Page 04
FUNDAMENTAIS
IMUTABILIDADE & ESTADO
Imutabilidade
Refere-se à ideia de que, uma vez que um dado é
atribuído a uma variável, ele não pode ser alterado. Isso
evita efeitos colaterais inesperados, tornando o código
mais previsível e fácil de entender.
Estado
Ao contrário dos paradigmas imperativos, em que as
variáveis mantêm um estado mutável, a Programação
Funcional enfatiza a minimização do uso de variáveis
mutáveis, promovendo a manipulação de dados por
meio de funções puras.
Next Page
PRINCÍPIOS Page 05
Efeitos Colaterais
São alterações observáveis fora do escopo da função,
como a modificação de variáveis globais. A minimização
de efeitos colaterais contribui para um código mais
robusto e fácil de depurar.
Next Page
PRINCÍPIOS Page 06
Composição de Funções
A recursividade muitas vezes se integra bem com a
composição de funções. Funções pequenas e
especializadas podem ser combinadas para criar
algoritmos complexos de maneira elegante.
Next Page
Page 07
Next Page
PROGRAMAÇÃO FUNCIONAL Page 08
VS IMPERATIVA
Paradigma
Funcional: Baseia-se em funções matemáticas, imutabilidade e
expressões lambda.
Imperativa: Enfoca instruções, estados mutáveis e controle direto do
fluxo.
Imutabilidade e Mutabilidade
Funcional: Dados são imutáveis, incentivando a criação de novos
dados em vez de modificar os existentes.
Imperativa: Dados podem ser modificados diretamente, permitindo
mudanças de estado.
Next Page
PROGRAMAÇÃO FUNCIONAL Page 09
VS IMPERATIVA
Controle de Fluxo
Funcional: Recursividade é comum, expressões lambda oferecem
expressividade.
Imperativa: Uso de loops e instruções de controle para modificar
estados e iterar.
Next Page
PROGRAMAÇÃO FUNCIONAL Page 10
VS IMPERATIVA
Tipagem
Funcional: Tipagem forte e estática é comum, verificada em tempo
de compilação.
Imperativa: Variedade de sistemas de tipagem, podendo incluir tipos
dinâmicos.
Paralelismo e Concorrência
Funcional: Facilita paralelismo devido à imutabilidade.
Imperativa: Requer gestão cuidadosa de estados compartilhados
para evitar problemas de concorrência.
Next Page
Page 11
Next Page
Page 12
Next Page
Page 13
Next Page
Page 14
LINGUAGENS FUNCIONAIS
Lambda Calculus (1930): Desenvolvido ML (Meta Language, 1973): ML
por Alonzo Church, o Lambda Calculus é introduziu o conceito de tipos
um modelo matemático que influenciou polimórficos, influenciando linguagens
fortemente o desenvolvimento de modernas como Haskell.
linguagens funcionais.
LISP (1958): Uma das linguagens mais Haskell (1990): Inspirada por conceitos
antigas, Lisp foi pioneira em muitos matemáticos, Haskell trouxe
conceitos funcionais, como funções de imutabilidade, funções puras e tipagem
primeira classe e recursividade. forte para o mundo da programação.
Next Page
SITUAÇÕES ONDE A Page 16
PROGRAMAÇÃO FUNCIONAL
SE DESTACA
Processamento de Dados
A imutabilidade e a composição de
funções tornam a programação
funcional ideal para manipulação de
grandes conjuntos de dados, como
em análise e transformação de dados.
Next Page
SITUAÇÕES ONDE A Page 17
PROGRAMAÇÃO FUNCIONAL
SE DESTACA
Algoritmos Recursivos
PROGRAMAÇÃO FUNCIONAL
SE DESTACA
Lógica Complexa
Next Page
Page 20
APLICAÇÕES
Desenvolvimento Web
(Clojure, Haskell)
A concisão e a expressividade da
programação funcional são aplicadas
na construção de backends escaláveis,
sistemas de gerenciamento de estado e
manipulação de dados em aplicativos
web modernos.
Next Page
Page 21
APLICAÇÕES
Ciência de Dados
(Scala, Haskell)
Next Page
Page 22
APLICAÇÕES
Inteligência Artificial
(Lisp, Haskell)
A capacidade de representar
conhecimento de maneira simbólica e
manipular estruturas de dados
complexas faz da programação
funcional uma escolha natural para o
desenvolvimento de algoritmos de
aprendizado de máquina e sistemas
especialistas.
Next Page
Page 23
OBRIGADO