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.

TDC2017 | POA Trilha Programcao Funcional - Paradigma funcional até leigos podem entender

97 visualizações

Publicada em

Trilha Programação Funcional - Paradigma funcional até leigos podem entender

Publicada em: Educação
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

TDC2017 | POA Trilha Programcao Funcional - Paradigma funcional até leigos podem entender

  1. 1. Paradigma funcional até leigos podem entender THE DEVELOPER’S CONFERENCE 2017
  2. 2. Leonardo Amarilho Software Engineer | Agile Coach leo.poa@gmail.com github.com/leopoa linkedin.com/in/leonardo-amarilho Hello!
  3. 3. Observação: Precisamos entender que o paradigma funcional é diferente!!! Paradigma Funcional O objetivo do funcional é imitar as funções matemáticas na maior extensão possível. Benefícios: - Sem side-effect - Imutabilidade - Lazy evaluation
  4. 4. Se f é a função então, a função h é essa é uma versão currying de f Currying Definição:
  5. 5. Se f é a função então, a função h é essa é uma versão currying de f Currying Definição:
  6. 6. Transforma uma função com muitos argumentos, para que possa ser chamada como uma cadeia de funções de argumento único Depois de aplicar currying...
  7. 7. Imagine como um mecânico descreveria um carro...
  8. 8. Ele dividiria o carro em pedaços menores, as peças. Explicaria que a união dessas peças formam o carro. Uma maneira bem detalhada de explicar Visão do mecânico
  9. 9. Partial Application Aplicação parcial envolve passar menos argumentos para uma função que recebe múltiplos argumentos. Esse processo cria uma nova função que recebe menos argumentos.
  10. 10. Você, que não é um engenheiro mecânico, tivesse que explicar o que é um carro. Dessa maneira seria difícil e complicado. Agora imagine
  11. 11. Muito mais simples falar que o carro tem: - Motor - Volante - 4 rodas - Bateria - etc... Você não entrou em muitos detalhes, mesmo assim explicou o que é um carro. Partial Application
  12. 12. List Comprehension É uma construção sintática, inspirada na compressão de conjuntos É uma maneira concisa de manipular / construir uma lista Porque usar? - É otimizado - É funcional - Reduzir tamanho de código
  13. 13. Neste problema, você deverá exibir uma lista de 1 a 20, um em cada linha, com as seguintes exceções: - Números divisíveis por 3 deve aparecer como 'Fizz' ; - Números divisíveis por 5 devem aparecer como 'Buzz' ; - Números divisíveis por 3 e 5 devem aparecer como 'FizzBuzz' ao invés do número'. Puzzle FizzBuzz Haskell
  14. 14. Ainda ficou com dúvidas?
  15. 15. Você é conservador ✗ Não gosta de aprender ✗ Nova tendência ✗ Esperar amadurecer
  16. 16. Orientação Objeto int total = 0; for elem in elems { total += elem; } return total; Funcional (0...10).sum(); elems.sum(); Desenvolvedor bom é pago por linha de código
  17. 17. Símbolos estranhos -> :: Conceitos Obscuros Currying Monads Símbolos óbvios != ++ Conceitos fáceis Herança Polimorfismo Diferenças conceituais
  18. 18. Leonardo Amarilho Software Engineer | Agile Coach leo.poa@gmail.com github.com/leopoa linkedin.com/in/leonardo-amarilho Thanks!

×