O documento discute os benefícios da programação funcional, incluindo maior produtividade, expressividade e novas formas de pensar problemas. Apresenta os principais conceitos como funções de primeira classe, funções de alta ordem e imutabilidade. Também aborda desafios como concorrência e paralelismo e recomenda linguagens como Erlang, Elixir e Haskell para estudar programação funcional.
2. why?
• computação evoluiu
• processadores não vão melhorar (muito)
• processamento tende a aumentar
• produtividade e brevidade de código
• expressividade
• novas formas de pensar velhos problemas
5. pensando funcional
• é uma mudança de paradigma
• uma forma diferente de pensar e enxergar
código (e os problemas que resolvemos com
ele)
• ao contrário do que se pensa pode ser muito
simples
9. high-order functions
• funções podem ser passadas como argumentos
• funções podem ser retornadas como resultado
• (e obviamente funções podem receber e
retornar funções)
10.
11.
12. imutabilidade
• não se pode modificar dados
• é preciso usar uma abordagem de
transformação
• previsibilidade
• confiança
13.
14. pure functions
• funções não causam side-effects
• independente do cenário, infra, distribuição,
paralelismo, concorrência, dado um input “x”
seu retorno sempre será “y” para “func(x)”
15. mais coisas legais
• pattern matching <3
• pensem nele como um “switch” que é 13
memo, BIRL!