SlideShare ist ein Scribd-Unternehmen logo
1 von 41
ProgramaçãoFuncional: NovosHorizontespara a Expansão da Consciência Andrei de Araújo Formiga @andreiformiga
Escolas de Magia ,[object Object]
Transmutation
Conjuration
Divination
Enchantment
Evocation
Illusion
Necromancy,[object Object]
Escolas de Programação ,[object Object]
Máquinas de Turing,[object Object]
Lambda-cálculo
Sistemas de reescrita,[object Object]
Computação = alteraçõesno estado da memória,[object Object]
“Global variables are evil”
Aliasing
Mais de umareferênciapara o mesmoobjeto
Problemático se o objetoémutável,[object Object]
Análisesestáticas
Segurança
Corretude
Compartilhamento e Concorrência,[object Object]
Solução: ControlarEfeitos ,[object Object]
Passagem de Mensagens
Estado local nãocompartilhado,[object Object]
Cidadãos de 1aclasse
Efeitoscolateraiscontrolados
Diferentesníveis de controle,[object Object]
Inferência de tipos
Pattern matching
Tipos de Dados Algébricos,[object Object]
Avaliaçãopreguiçosa (lazy)
Continuações
Mônadas e Sistemas de Efeitos,[object Object]
Muitasinovaçõessurgiram 1onaslinguagensfuncionais
Fama de paradigma“acadêmico”,[object Object]
Linguagens ,[object Object]

Weitere ähnliche Inhalte

Was ist angesagt?

Java Básico :: Classe Vector
Java Básico :: Classe VectorJava Básico :: Classe Vector
Java Básico :: Classe VectorWesley R. Bezerra
 
Project coin pequenas mudanças grandes facilidades
Project coin pequenas mudanças grandes facilidadesProject coin pequenas mudanças grandes facilidades
Project coin pequenas mudanças grandes facilidadesMarcelo de Castro
 
Refatoração e Boas Práticas no Desenvolvimento de Software com a Linguagem Ja...
Refatoração e Boas Práticas no Desenvolvimento de Software com a Linguagem Ja...Refatoração e Boas Práticas no Desenvolvimento de Software com a Linguagem Ja...
Refatoração e Boas Práticas no Desenvolvimento de Software com a Linguagem Ja...Tchelinux
 
Curso de Matlab basico
Curso de Matlab basicoCurso de Matlab basico
Curso de Matlab basicoGabriel Costa
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Mario Jorge Pereira
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compactoLuciano Ramalho
 
Curso java 04 - ap is e bibliotecas
Curso java   04 - ap is e bibliotecasCurso java   04 - ap is e bibliotecas
Curso java 04 - ap is e bibliotecasMaurício Linhares
 
Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosLeonardo Melo Santos
 
Curso java 03 - métodos e parâmetros
Curso java   03 - métodos e parâmetrosCurso java   03 - métodos e parâmetros
Curso java 03 - métodos e parâmetrosMaurício Linhares
 
Semana 9: toString, classes, instâncias e objectos, Scanner
Semana  9: toString, classes, instâncias e objectos, ScannerSemana  9: toString, classes, instâncias e objectos, Scanner
Semana 9: toString, classes, instâncias e objectos, ScannerManuel Menezes de Sequeira
 
Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)Luciano Ramalho
 

Was ist angesagt? (19)

POO - 24 - Classes Básicas do Java - Datas
POO - 24 - Classes Básicas do Java - DatasPOO - 24 - Classes Básicas do Java - Datas
POO - 24 - Classes Básicas do Java - Datas
 
Java Básico :: Classe Vector
Java Básico :: Classe VectorJava Básico :: Classe Vector
Java Básico :: Classe Vector
 
POO - 03 - Alocação de Memória em Java
POO - 03 - Alocação de Memória em JavaPOO - 03 - Alocação de Memória em Java
POO - 03 - Alocação de Memória em Java
 
ExercíCios Grupo De Estudo Java Atualizado
ExercíCios Grupo De Estudo Java AtualizadoExercíCios Grupo De Estudo Java Atualizado
ExercíCios Grupo De Estudo Java Atualizado
 
Project coin pequenas mudanças grandes facilidades
Project coin pequenas mudanças grandes facilidadesProject coin pequenas mudanças grandes facilidades
Project coin pequenas mudanças grandes facilidades
 
Refatoração e Boas Práticas no Desenvolvimento de Software com a Linguagem Ja...
Refatoração e Boas Práticas no Desenvolvimento de Software com a Linguagem Ja...Refatoração e Boas Práticas no Desenvolvimento de Software com a Linguagem Ja...
Refatoração e Boas Práticas no Desenvolvimento de Software com a Linguagem Ja...
 
Curso de Matlab basico
Curso de Matlab basicoCurso de Matlab basico
Curso de Matlab basico
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java
 
Dinamicas
DinamicasDinamicas
Dinamicas
 
Novidades java 7
Novidades java 7Novidades java 7
Novidades java 7
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compacto
 
Curso java 04 - ap is e bibliotecas
Curso java   04 - ap is e bibliotecasCurso java   04 - ap is e bibliotecas
Curso java 04 - ap is e bibliotecas
 
Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetos
 
Java6
Java6Java6
Java6
 
Curso java 03 - métodos e parâmetros
Curso java   03 - métodos e parâmetrosCurso java   03 - métodos e parâmetros
Curso java 03 - métodos e parâmetros
 
POO - 20 - Wrapper Classes
POO - 20 - Wrapper ClassesPOO - 20 - Wrapper Classes
POO - 20 - Wrapper Classes
 
Java7
Java7Java7
Java7
 
Semana 9: toString, classes, instâncias e objectos, Scanner
Semana  9: toString, classes, instâncias e objectos, ScannerSemana  9: toString, classes, instâncias e objectos, Scanner
Semana 9: toString, classes, instâncias e objectos, Scanner
 
Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)
 

Ähnlich wie Programação funcional: Novos horizontes para a expansão da consciência

O que é que o Java não tem?
O que é que o Java não tem?O que é que o Java não tem?
O que é que o Java não tem?Denis Costa
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmGuilherme Blanco
 
Evolução e futuro do uso de paradigmas no JavaScript
Evolução e futuro do uso de paradigmas no JavaScriptEvolução e futuro do uso de paradigmas no JavaScript
Evolução e futuro do uso de paradigmas no JavaScriptJean Carlo Emer
 
[TDC2016] Apache SparkMLlib: Machine Learning na Prática
[TDC2016] Apache SparkMLlib:  Machine Learning na Prática[TDC2016] Apache SparkMLlib:  Machine Learning na Prática
[TDC2016] Apache SparkMLlib: Machine Learning na PráticaEiti Kimura
 
Programação Reativa e Funcional e extensões para PHP
Programação Reativa e Funcional e extensões para PHPProgramação Reativa e Funcional e extensões para PHP
Programação Reativa e Funcional e extensões para PHPJuliana Chahoud
 
Java - Introdução a banco de dados
Java - Introdução a banco de dadosJava - Introdução a banco de dados
Java - Introdução a banco de dadosSérgio Souza Costa
 
TDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologiaTDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologiatdc-globalcode
 
TDC2016SP - SparkMLlib Machine Learning na Prática
TDC2016SP -  SparkMLlib Machine Learning na PráticaTDC2016SP -  SparkMLlib Machine Learning na Prática
TDC2016SP - SparkMLlib Machine Learning na Práticatdc-globalcode
 
Maven - TDC FLN 2013
Maven - TDC FLN 2013Maven - TDC FLN 2013
Maven - TDC FLN 2013Aldrin Leal
 
JavaScript agora é sério (TDC 2011)
JavaScript agora é sério (TDC 2011)JavaScript agora é sério (TDC 2011)
JavaScript agora é sério (TDC 2011)Luciano Ramalho
 
Apresentando o EcmaScript 6
Apresentando o EcmaScript 6Apresentando o EcmaScript 6
Apresentando o EcmaScript 6Giovanni Bassi
 

Ähnlich wie Programação funcional: Novos horizontes para a expansão da consciência (20)

O que é que o Java não tem?
O que é que o Java não tem?O que é que o Java não tem?
O que é que o Java não tem?
 
Aula 14 - Funções: não duplique seu código
Aula 14 - Funções: não duplique seu códigoAula 14 - Funções: não duplique seu código
Aula 14 - Funções: não duplique seu código
 
Tdc2010 web
Tdc2010 webTdc2010 web
Tdc2010 web
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine Orm
 
Evolução e futuro do uso de paradigmas no JavaScript
Evolução e futuro do uso de paradigmas no JavaScriptEvolução e futuro do uso de paradigmas no JavaScript
Evolução e futuro do uso de paradigmas no JavaScript
 
Code Smells
Code SmellsCode Smells
Code Smells
 
Java e orientação a objetos
Java e orientação a objetosJava e orientação a objetos
Java e orientação a objetos
 
Javascript
JavascriptJavascript
Javascript
 
Scala java7
Scala java7Scala java7
Scala java7
 
Questionário de automação industrial
Questionário de automação industrialQuestionário de automação industrial
Questionário de automação industrial
 
Poo Aula 02
Poo Aula 02Poo Aula 02
Poo Aula 02
 
[TDC2016] Apache SparkMLlib: Machine Learning na Prática
[TDC2016] Apache SparkMLlib:  Machine Learning na Prática[TDC2016] Apache SparkMLlib:  Machine Learning na Prática
[TDC2016] Apache SparkMLlib: Machine Learning na Prática
 
Programação Reativa e Funcional e extensões para PHP
Programação Reativa e Funcional e extensões para PHPProgramação Reativa e Funcional e extensões para PHP
Programação Reativa e Funcional e extensões para PHP
 
Java - Introdução a banco de dados
Java - Introdução a banco de dadosJava - Introdução a banco de dados
Java - Introdução a banco de dados
 
TDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologiaTDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologia
 
JavaScript - A Linguagem
JavaScript - A LinguagemJavaScript - A Linguagem
JavaScript - A Linguagem
 
TDC2016SP - SparkMLlib Machine Learning na Prática
TDC2016SP -  SparkMLlib Machine Learning na PráticaTDC2016SP -  SparkMLlib Machine Learning na Prática
TDC2016SP - SparkMLlib Machine Learning na Prática
 
Maven - TDC FLN 2013
Maven - TDC FLN 2013Maven - TDC FLN 2013
Maven - TDC FLN 2013
 
JavaScript agora é sério (TDC 2011)
JavaScript agora é sério (TDC 2011)JavaScript agora é sério (TDC 2011)
JavaScript agora é sério (TDC 2011)
 
Apresentando o EcmaScript 6
Apresentando o EcmaScript 6Apresentando o EcmaScript 6
Apresentando o EcmaScript 6
 

Programação funcional: Novos horizontes para a expansão da consciência