O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
Programação funcional
E um pouco de JavaScript
Deivis C. Wingert
/DeivisWingert
/Deivis
“Programação funcional, assim como a orientação a
objetos, é uma forma de se pensar em como resolver
problemas”
Um pouco de história
Hoje
Nuvem
Servidores distribuídos
Programação concorrente
Vantagens
Melhor modularidade
Menos sujeito a efeitos colaterais
Reusabilidade
Programação concorrente
Sobre o paradigma
Funções == objeto
Imutabilidade
Recursividade
Lamda
Independência de estado
Sobre o paradigma
- Função é a menor parte de um programa
- Na programação funcional nos preocupamos
em dizer a maquina o ...
Sobre o paradigma
- Variáveis e estados imutáveis.
- Funções não dependem do estado do sistema.
- Lambda: funções recebend...
Funções de primeira classe
Funções de primeira classe
- Funções mais simples que podem ser
representadas apenas com números.
- São atribuídas a uma v...
Funções de alta ordem
Funções de alta ordem
- Funções mais complexas onde pode haver
uma ou mais funções internas.
- Podem ter escopo compartilh...
Clousures
Closures
- Funções que possuem funções filhas que tem
acesso as variáveis do escopo da função pai
- Você pode salvar algum...
Currying
Currying
- Em linhas gerais currying é uma função com
argumentos simples que simplifica outra
função mais complexa.
- Não ...
Funções puras
Funções puras
- Funções onde dado um ou mais parâmetros de
entrada a será a mesma para toas as vezes que
estes parâmetros ...
Funções mais comuns
Map
Reduce
Filter
Funções mais comuns
• O JavaScript desde sua versão 5 de 2011,
ECMA-262 passou a implementar, map,
reduce e filter como pr...
Map
- Itera um Array executando uma função de call-
back sobre cada item do Array, retornando uma
lista nova, normalmente ...
Map
• Referência: https://developer.mozilla.org/en-
US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
Filter
- Os parâmetros da função filter são exatamente
os mesmos da função map().
- E como o nome sugere ela filtra alguma...
Filter
• Referência: https://developer.mozilla.org/en-
US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
Reduce
- Itera um Array da mesma maneira que o map,
mas retorna a soma dos resultados da função de
call-back recebida.
- A...
Reduce
• Referência: https://developer.mozilla.org/en-
US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
Exemplos
/Deivis/Functional-Programming
Perguntas ?
Obrigado
Próximos SlideShares
Carregando em…5
×

Breve introdução a programação funcional com JavaScript

431 visualizações

Publicada em

Introdução aos conceitos básicos de programação funcional que podem ser utilizados no JavaScript(ECMA 262 5.1).

Publicada em: Software
  • Seja o primeiro a comentar

Breve introdução a programação funcional com JavaScript

  1. 1. Programação funcional E um pouco de JavaScript
  2. 2. Deivis C. Wingert /DeivisWingert /Deivis
  3. 3. “Programação funcional, assim como a orientação a objetos, é uma forma de se pensar em como resolver problemas”
  4. 4. Um pouco de história
  5. 5. Hoje Nuvem Servidores distribuídos Programação concorrente
  6. 6. Vantagens Melhor modularidade Menos sujeito a efeitos colaterais Reusabilidade Programação concorrente
  7. 7. Sobre o paradigma Funções == objeto Imutabilidade Recursividade Lamda Independência de estado
  8. 8. Sobre o paradigma - Função é a menor parte de um programa - Na programação funcional nos preocupamos em dizer a maquina o que queremos fazer e não como iremos fazer. - A execução das expressões é controlada por condições e recursividade e não iterações diretas como ocorre nos paradigmas imperativos.
  9. 9. Sobre o paradigma - Variáveis e estados imutáveis. - Funções não dependem do estado do sistema. - Lambda: funções recebendo e retornando funções ou resultados das mesmas
  10. 10. Funções de primeira classe
  11. 11. Funções de primeira classe - Funções mais simples que podem ser representadas apenas com números. - São atribuídas a uma variável - Não e não recebem parâmetros complexos
  12. 12. Funções de alta ordem
  13. 13. Funções de alta ordem - Funções mais complexas onde pode haver uma ou mais funções internas. - Podem ter escopo compartilhado. - Recebem funções e retornam funções
  14. 14. Clousures
  15. 15. Closures - Funções que possuem funções filhas que tem acesso as variáveis do escopo da função pai - Você pode salvar algum dado dentro de uma função que é apenas acessível à função de retorno , isto é, a função retornada mantém seu ambiente de execução. - Call-backs podem ser considerados clousures.
  16. 16. Currying
  17. 17. Currying - Em linhas gerais currying é uma função com argumentos simples que simplifica outra função mais complexa. - Não afeta a função simplificada
  18. 18. Funções puras
  19. 19. Funções puras - Funções onde dado um ou mais parâmetros de entrada a será a mesma para toas as vezes que estes parâmetros forem recebidos. - Não dependem de variáveis externas, recebem dados e retornam dados. - Não causa nem um tipo de efeito colateral
  20. 20. Funções mais comuns Map Reduce Filter
  21. 21. Funções mais comuns • O JavaScript desde sua versão 5 de 2011, ECMA-262 passou a implementar, map, reduce e filter como protótipos de array
  22. 22. Map - Itera um Array executando uma função de call- back sobre cada item do Array, retornando uma lista nova, normalmente modificada. - A função map() recebe dois parâmetros , onde primeiro parâmetro é uma função de call-back. - O segundo parâmetro é utilizado para especificar o valor para o escopo da função. - O mais importante são os parâmetros passados para a função de call-back, o elemento do Array em si, o índice do Array, e todo o Array (contexto)
  23. 23. Map • Referência: https://developer.mozilla.org/en- US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
  24. 24. Filter - Os parâmetros da função filter são exatamente os mesmos da função map(). - E como o nome sugere ela filtra alguma coisa em um array. - O filtro é criado a partir da logica da função de call-back passada como parâmetro.
  25. 25. Filter • Referência: https://developer.mozilla.org/en- US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
  26. 26. Reduce - Itera um Array da mesma maneira que o map, mas retorna a soma dos resultados da função de call-back recebida. - Assim como map, reduce recebe dois argumentos. - O primeiro é novamente a função de callback, que será chamada para cada elemento no Array. - O segundo parâmetro é o initialValue que será utilizado para somar ao próximo valor. Caso não seja informado o primeiro valor do array é o initialValue.
  27. 27. Reduce • Referência: https://developer.mozilla.org/en- US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
  28. 28. Exemplos /Deivis/Functional-Programming
  29. 29. Perguntas ? Obrigado

×