Escolar Documentos
Profissional Documentos
Cultura Documentos
JavaScript
Débora Amorim
1
Paradigma Uma forma de abstrair problemas complexos.
Origem
2
Paradigma Funcional
Conceitos Vantagens
3
Função Pura O valor de retorno é determinado
apenas pelos valores de entrada.
</>
4
Implementação
5
First-Class Uma linguagem de programação só pode
ser considerada funcional se tratar suas
Function funções como first-class citizen, ou seja,
funções são objetos/entidades/valores.
6
First-Class Function
Características
7
Implementação
8
Higher-Order Funções que operam em outras funções,
tomando-as como argumento ou
Function retornando-as.
9
Higher-Order Function
Características
10
Implementação
11
Callback Função passada como parâmetro para
outra função e é chamada de volta (called
back) quando um processamento,
normalmente assíncrono, termina.
12
Implementação
13
Promises São um padrão de desenvolvimento que
visam representar a conclusão de
operações assíncronas.
“Na volta a gente compra..” ou não Antes delas a maioria das funções
-Mamãe usavam callbacks.
14
Implementação
15
Imutabilidade A utilização do conceito de imutabilidade
permite maior controle do que acontece
em seu código e previne que sejam
redefinidos valores para variáveis que
não poderiam ser alteradas.
16
Closure Uma closure ocorre normalmente
quando uma função é declarada dentro
do corpo de outra, e a função interior
referencia variáveis locais da função
exterior.
17
Implementação
18
Currying Uma função que receba múltiplos
parâmetros é transformada para que seja
chamada como uma cadeia de funções
que recebem um único parâmetro cada.
19
Implementação
20
Lazy Evaluation Quando utilizamos currying, compondo
funções, torna-se interessante “atrasar” o
processamento até o momento em que o
resultado seja realmente necessário.
21
Implementação
22
Composição de Um dos mais importantes conceitos da
programação funcional.
Funções Bastante semelhante ao que acontece no
uso das Promises, onde compomos
funções por meio do .then
23
Implementação
24
Obrigada!
Códigos de exemplo:
https://github.com/DebAmorim/programacao-funcional-javascript
25