O documento discute os conceitos e benefícios da programação funcional, incluindo: 1) Funções puras que sempre retornam o mesmo resultado para os mesmos argumentos de entrada; 2) Imutabilidade dos dados que impede efeitos colaterais; 3) Uso de funções de alta ordem que recebem outras funções como parâmetros.
10. O que é?
● Um paradigma de programação;
● Com origem no cálculo lambda;
● Trata computações como avaliação de funções, ao
invés de execução de procedimentos.
12. Conceitos principais
● Funções de alta-ordem (high-order functions);
● Funções puras (pure functions);
● Transparência referencial (referential transparency);
● Recursividade (recursion) / Recursividade em cauda
(tail recursion);
13. Conceitos principais
● Dados separados dos comportamentos;
● Funções que se compõe para manipular os dados;
● Imutabilidade por padrão;
● Limita efeitos colaterais.
14. Podemos usar conceitos da
programação funcional no dia a
dia, mesmo em linguagens não
funcionais.
16. Função de alta-ordem
function soma(a, b) {
return a + b;
}
function multiplica(a, b) {
return a * b;
}
function calcula(operacao, a, b) {
return operacao(a, b);
}
console.log(calcula(soma, 1, 2)); // 3
console.log(calcula(multiplica, 1, 2)); // 2
17. Função de alta-ordem
function exibeUsuario(usuario) {
console.log(usuario.nome + ‘ - ’ usuario.email);
}
function buscaUsuario() {
$.get(‘http://dev-es.com.br/usuarios/1’, exibeUsuario);
}
buscaUsuario();
// Fulano de Tal - fulano.de.tal@dev-es.com.br
18. Função de alta-ordem
function adiciona(a) {
return function(b) {
return a + b;
};
}
var adiciona5 = adiciona(5);
console.log(adiciona5(1)); // 6
console.log(adiciona(3)(10)); // 13