SlideShare uma empresa Scribd logo
JavaScript
Funcional
Em sete minutos
7 masters ‑ 25/09/2013
Plínio Balduino / @p_balduino
Programação Funcional
JavaScript é funcional
Ok, quase
High Order Function
Funções como ʺcidadão de primeira
classeʺ
Função é um valor
High Order Function
Funções como ʺcidadão de primeira
classeʺ
function g() { }
var f = function() { }
High Order Function
Uma função recebe outra função
como parâmetro
function 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); // 5
calcula(multiplicacao, 2, 3); // 6
High Order Function
Uma função devolve outra função
como resultado
function adder(x) {
return function(y) {
return x + y;
}
}
var add5 = adder(5);
add5(10); // 15
Closure
Escopo e contexto
function saudacao(mensagem) {
return function(nome) {
alert(mensagem + ", " + nome);
}
}
var bomDia = saudacao("Bom dia");
bomDia("iMasters");
bomDia("Biu Goiaba");
Partial
Funçã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 recursos
Usando 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

Mais conteúdo relacionado

PPTX
Light Talk sobre JavaScript Funcional
PPTX
Comtec 2012 - C# Async
PPT
Pilha ad
PPT
PPT
Javascript
PDF
Gabarito funcoes
PDF
7Masters jQuery - Eventos em jQuery, com Felquis Gimenes
PDF
InterCon 2016 - Refactor direto e reto: migração de uma arquitetura 100% acop...
Light Talk sobre JavaScript Funcional
Comtec 2012 - C# Async
Pilha ad
Javascript
Gabarito funcoes
7Masters jQuery - Eventos em jQuery, com Felquis Gimenes
InterCon 2016 - Refactor direto e reto: migração de uma arquitetura 100% acop...

Destaque (6)

PPTX
InterCon 2016 - Desenvolvimento para interfaces em vídeo e cases da plataform...
PDF
InterCon 2016 - HTTP/2 for Web Application Developers
PDF
InterCon 2016 - SLA vs Agilidade: uso de microserviços e monitoramento de cloud
PDF
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
PDF
InterCon 2016 - Backend do IoT com RethinkDB e Python
PDF
InterCon 2016 - Internet of “Thinking” – IoT sem BS com ESP8266
InterCon 2016 - Desenvolvimento para interfaces em vídeo e cases da plataform...
InterCon 2016 - HTTP/2 for Web Application Developers
InterCon 2016 - SLA vs Agilidade: uso de microserviços e monitoramento de cloud
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
InterCon 2016 - Backend do IoT com RethinkDB e Python
InterCon 2016 - Internet of “Thinking” – IoT sem BS com ESP8266
Anúncio

Semelhante a Plinio Balduino: JavaScript Funcional (13)

PPT
Tdc2010 web
PDF
Leonardo Zamariola - High Order Functions e Functional Interfaces
PDF
Programação funcional em JavaScript: como e por quê?
PPTX
Javascript avançado
PPTX
Aula 7 aed - sub algoritmos
PPTX
Aula 7 -_aed_-_sub_algoritmos
PPTX
Aula 7 -_aed_-_sub_algoritmos
PPTX
Aula_Funcoes_PHP para alunos inciantes em WEB
PDF
LabMM3 - Aula teórica 09
PDF
JS Experience 2017 - Javascript Funcional
PDF
Intro funcoes(2)
PPT
Introdução à análise orientada a objetos parte 2
PDF
JavaScript - De verdade
Tdc2010 web
Leonardo Zamariola - High Order Functions e Functional Interfaces
Programação funcional em JavaScript: como e por quê?
Javascript avançado
Aula 7 aed - sub algoritmos
Aula 7 -_aed_-_sub_algoritmos
Aula 7 -_aed_-_sub_algoritmos
Aula_Funcoes_PHP para alunos inciantes em WEB
LabMM3 - Aula teórica 09
JS Experience 2017 - Javascript Funcional
Intro funcoes(2)
Introdução à análise orientada a objetos parte 2
JavaScript - De verdade
Anúncio

Mais de iMasters (20)

PPTX
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
PDF
Postgres: wanted, beloved or dreaded? - Fabio Telles
PPTX
Por que minha query esta lenta? - Suellen Moraes
PPTX
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
PDF
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
PPTX
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
PDF
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
PDF
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
PDF
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
PDF
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
PDF
Entendendo os porquês do seu servidor - Talita Bernardes
PDF
Backend performático além do "coloca mais máquina lá" - Diana Arnos
PPTX
Dicas para uma maior performance em APIs REST - Renato Groffe
PPTX
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
PDF
Quem se importa com acessibilidade Web? - Mauricio Maujor
PDF
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
PDF
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
PDF
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
PDF
Construindo aplicações mais confiantes - Carolina Karklis
PDF
Monitoramento de Aplicações - Felipe Regalgo
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
Postgres: wanted, beloved or dreaded? - Fabio Telles
Por que minha query esta lenta? - Suellen Moraes
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Entendendo os porquês do seu servidor - Talita Bernardes
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Dicas para uma maior performance em APIs REST - Renato Groffe
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
Quem se importa com acessibilidade Web? - Mauricio Maujor
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Construindo aplicações mais confiantes - Carolina Karklis
Monitoramento de Aplicações - Felipe Regalgo

Último (16)

PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Arquitetura de computadores - Memórias Secundárias
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Custos e liquidação no SAP Transportation Management, TM130 Col18
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Arquitetura de computadores - Memórias Secundárias
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
COBITxITIL-Entenda as diferença em uso governança TI
Processos na gestão de transportes, TM100 Col18
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...

Plinio Balduino: JavaScript Funcional