Post on 12-Jun-2015
description
JavaScriptFuncionalEm sete minutos
7 masters ‑ 25/09/2013Plínio Balduino / @p_balduino
Programação FuncionalJavaScript é funcional
Ok, quase
High Order FunctionFunções como ʺcidadão de primeira
classeʺFunção é um valor
High Order FunctionFunções como ʺcidadão de primeira
classeʺfunction g() { }
var f = function() { }
High Order FunctionUma função recebe outra função
como parâmetrofunction soma(x, y) { return x + y;}function multiplicacao(x, y) { return x + y;}function calcula(op, x, y) { return op(x, y);}calcula(soma, 2, 3); // 5calcula(multiplicacao, 2, 3); // 6
High Order FunctionUma função devolve outra função
como resultadofunction adder(x) { return function(y) { return x + y; }}
var add5 = adder(5);
add5(10); // 15
ClosureEscopo e contexto
function saudacao(mensagem) { return function(nome) { alert(mensagem + ", " + nome); }}
var bomDia = saudacao("Bom dia");
bomDia("iMasters");
bomDia("Biu Goiaba");
PartialFunção que não roda sozinha
function saudacao(mensagem) { return function(nome) { alert(mensagem + ", " + nome); }}
var bomDia = saudacao("Bom dia");
bomDia("iMasters");
bomDia("Biu Goiaba");
Mais recursosUsando underscore.js
_.map([1, 2, 3], add5); // [6, 7, 8]
_.reduce([1, 2, 3, 4], soma); // 10
function par(x) {return x % 2 == 0};
_.filter([1, 2, 3, 4, 5], par); // [2, 4]
Obrigado