O documento discute os conceitos fundamentais da programação funcional, incluindo: 1) Funções puras que sempre retornam o mesmo resultado para uma entrada e não causam efeitos colaterais; 2) Funções de primeira classe que podem ser passadas como argumentos ou retornadas de outras funções; 3) Imutabilidade de dados que impede alterações no estado.
4. In computer science, functional programming is a programming
paradigm where programs are constructed by applying and
composing functions. It is a declarative programming paradigm
in which function definitions are trees of expressions that each
return a value, rather than a sequence of imperative statements
which change the state of the program or world.
Wikipedia
O QUE É A PROGRAMAÇÃO
FUNCIONAL?
5. Functional programming is a style of programming
which models computations as the evaluation of
expressions.
Haskell Wiki
O QUE É A PROGRAMAÇÃO
FUNCIONAL?
6. “A language that doesn't affect the way you think
about programming is not worth knowing.”
Alan J. Perlis
20. Funções devem associáveis
a variáveis e permitir sua
manipulação.
✔ A saída depende da
entrada;
✔ Nenhum efeito colateral.
Construídas sobre funções
de primeira classe;
Recebem uma função como
argumento ou retornam uma
função.
FUNÇÕES PURAS FUNÇÕES DE ALTA ORDEMFUNÇÕES DE PRIMEIRA CLASSE
DEFINIÇÃO DE CONCEITOS
21. Se você pode substituir uma
chamada de função por seu
valor de retorno sem afetar
o comportamento da
aplicação.
Impossível modificar
estrutura da dados já
existentes. ✔ Funções anônimas (lambda)
✔ Currying
IMUTABILIDADE BASEADA NO
CÁLCULO LAMBDA
TRANSPARÊNCIA REFERENCIAL
DEFINIÇÃO DE CONCEITOS
36. LEI DE MOORE
Em 1965, Gordon Moore fez uma previsão que determinaria o
ritmo da revolução digital moderna. Moore concluiu que o poder
da computação aumentaria tremendamente e que seu custo
relativo cairia a um ritmo vertiginoso.
https://www.intel.com.br/content/www/br/pt/silicon-innovations/moores-law-technology.html
39. BENEFÍCIOS
Um trecho de código é dito thread safe se este
funciona corretamente no contexto onde existem
múltiplas threads.
THREAD SAFETY
Quando um processo nunca é executado.
STARVATION FREE
Impasse onde dois ou mais processos ficam impedidos
de continuar suas execuções, ou seja, ficam
bloqueados, esperando uns pelos outros.
DEADLOCK FREE
56. ◂ Template da apresentação do Slidesgo
◂ Icones do Flaticon
◂ Inspirado na talk de Russ Olsen
◂ Conceitos extraídos de inúmeros artigos na interwebs, porém,
kudos para Core Functional Programming Concepts
Créditos