Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Javascript Funcional uma breve Introdução
Slide 2
Slide 2 text
github.com/ripfoghorn twitter.com/ripfoghorn_ 20 anos desenvolvedor back-end por 3 anos entusiasta de robôs gigantes
Slide 3
Slide 3 text
Programação Funcional?
Slide 4
Slide 4 text
Paradigma de programação que trata a computação como uma avaliação de funções matemáticas e que evita estados ou dados mutáveis.
Slide 5
Slide 5 text
?
Slide 6
Slide 6 text
Paradigma
Slide 7
Slide 7 text
Funções puras Imutabilidade de estado Composição de funções Redução de código
Slide 8
Slide 8 text
Matemática
Slide 9
Slide 9 text
f(x) = 2x + 1
Slide 10
Slide 10 text
f(3) = 2(3) + 1 = 7
Slide 11
Slide 11 text
g(y) = y + 5
Slide 12
Slide 12 text
f(g(y)) = f(y + 5) = 2(y + 5) + 1 = 2y + 11
Slide 13
Slide 13 text
Programação Funcional == Matemática
Slide 14
Slide 14 text
Funções
Slide 15
Slide 15 text
function f(x) { return 2*x + 1; }
Slide 16
Slide 16 text
function g(y) { return y + 5; }
Slide 17
Slide 17 text
console.log(f(g(3)));
Slide 18
Slide 18 text
17
Slide 19
Slide 19 text
Funções de ordem superior e funções de primeira classe
Slide 20
Slide 20 text
var composta = function(a) { return f(g(a)); }
Slide 21
Slide 21 text
composta(3) //=> 17 composta(4) //=> 19
Slide 22
Slide 22 text
Composição
Slide 23
Slide 23 text
var add1= function(x){ return x + 1; }
Slide 24
Slide 24 text
var quadrado = function(x){ return x * x; }
Slide 25
Slide 25 text
var f = function(x) { return add1(quadrado(x)); }
Slide 26
Slide 26 text
console.log(f(7)) ??
Slide 27
Slide 27 text
50
Slide 28
Slide 28 text
Funções Puras Imutabilidade de estado
Slide 29
Slide 29 text
function pura(a, b) { return a + b; }
Slide 30
Slide 30 text
var a = 1; function impura(b) { return a + b; }
Slide 31
Slide 31 text
a = new Date().getDay();
Slide 32
Slide 32 text
Estado
Slide 33
Slide 33 text
f(x) = 2x f(2) = 4
Slide 34
Slide 34 text
Arrays!
Slide 35
Slide 35 text
Curry!
Slide 36
Slide 36 text
OK, mas por que Javascript mesmo?
Slide 37
Slide 37 text
Node NPM Full-stack
Slide 38
Slide 38 text
ES6 Arrow Functions Map Reduce Filter ...
Slide 39
Slide 39 text
IIFE’s
Slide 40
Slide 40 text
(function() {...})(); (()=> {...})();
Slide 41
Slide 41 text
Underscore Lodash Ramda Immutable Fn Function
Slide 42
Slide 42 text
Fun();
Slide 43
Slide 43 text
Obrigado!