SlideShare a Scribd company logo
1 of 22
Download to read offline
DevDay 2011,[object Object],Programação Funcional,[object Object]
Quem sou eu?,[object Object],Rodrigo Vidal,[object Object],Twitter: @rodrigovidal,[object Object],www.rodrigovidal.net,[object Object],FocoemArquitetura de Software,[object Object],Evangelista da Linguagem F#,[object Object],Professional Scrum Developer,[object Object],Microsoft Student Partner,[object Object]
Meu slide não é azul parceiro... ,[object Object],É PRETO,[object Object]
Programação Funcional,[object Object],Antigo paradigma,[object Object],52 anos ,[object Object],Ignorado do mainstream corporativo,[object Object]
Isso importa?,[object Object],Novos desafios,[object Object],Mudança de Mindset,[object Object],Sair da zona de conforto,[object Object],Muitas linguagens implementam,[object Object]
Object vs Function,[object Object]
Pense diferente...!,[object Object],“Uma linguagem que não muda sua visão sobre programação, não vale ser aprendida.”,[object Object],	(Alan Perlis),[object Object]
Lambda Calculus,[object Object],Foi desenvolvido por Alonzo Church in 1930, como uma forma de estudar funções e computabilidade.,[object Object]
Funções: O Coração,[object Object]
C# e ai?,[object Object],Generics,[object Object],Iterators,[object Object],Anonymous Methods,[object Object],Delegates,[object Object]
Transparência Referencial,[object Object],Afunção depende apenas dos valores de seus parametros.,[object Object],Modificamestado,[object Object],Interage de maneiraobservávelcom a funçãoinvocadora,[object Object],Interage com o “mundo exterior”,[object Object],Exemplo: Uma funçãosem valor de retorno,[object Object]
Efeito Colateral,[object Object],Estados,[object Object],Função Impura,[object Object],Saída,[object Object],Entrada,[object Object],Atribuição,[object Object]
Imutabilidade,[object Object]
Aplicação Parcial de Funções,[object Object]
T1 -> T2 -> R,[object Object]
Funções de Alta Ordem,[object Object]
Recursão em Cauda,[object Object]
Composição de Funções,[object Object],f(x),[object Object],g(x),[object Object]
MapReduce,[object Object]
Monads,[object Object]
Estrutura de uma Monad,[object Object],Haskell,[object Object],class Monad m where ,[object Object],(>>=) :: m a -> (a -> m b) -> m b,[object Object],Return :: a -> m a,[object Object]
Obrigado!,[object Object]

More Related Content

Similar to DevDay BH 2011 Programação Funcional

A importância da programação funcional no dia a-dia
A importância da programação funcional no dia a-diaA importância da programação funcional no dia a-dia
A importância da programação funcional no dia a-diaGabriel Schade Cardoso
 
TDC2018SP | Trilha Prog Funcional - Programacao funcional para humanos
TDC2018SP | Trilha Prog Funcional - Programacao funcional para humanosTDC2018SP | Trilha Prog Funcional - Programacao funcional para humanos
TDC2018SP | Trilha Prog Funcional - Programacao funcional para humanostdc-globalcode
 
Lidando com Equipes de Desenvolvimento
Lidando com Equipes de DesenvolvimentoLidando com Equipes de Desenvolvimento
Lidando com Equipes de Desenvolvimento4Soft
 
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013Gabriel Rubens
 
O papel e a carreira do arquiteto de software
O papel e a carreira do arquiteto de softwareO papel e a carreira do arquiteto de software
O papel e a carreira do arquiteto de softwareLeonardo Zanivan
 
Orientação a Aspectos em PHP
Orientação a Aspectos em PHPOrientação a Aspectos em PHP
Orientação a Aspectos em PHPFlávio Lisboa
 
Design for change: Fatores que influenciam na longevidade de um Software PHP
Design for change: Fatores que influenciam na longevidade de um Software PHPDesign for change: Fatores que influenciam na longevidade de um Software PHP
Design for change: Fatores que influenciam na longevidade de um Software PHPPablo Dall'Oglio
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorPorque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorDickson S. Guedes
 
Feature-Driven Development - Visão Geral
Feature-Driven Development - Visão GeralFeature-Driven Development - Visão Geral
Feature-Driven Development - Visão GeralRuan Carvalho
 
Agile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelumAgile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelumLuca Bastos
 
Apresentação bichinhos da TI: o que é esse arquiteto de software
Apresentação bichinhos da TI: o que é esse arquiteto de softwareApresentação bichinhos da TI: o que é esse arquiteto de software
Apresentação bichinhos da TI: o que é esse arquiteto de softwareAleatório .
 

Similar to DevDay BH 2011 Programação Funcional (20)

A importância da programação funcional no dia a-dia
A importância da programação funcional no dia a-diaA importância da programação funcional no dia a-dia
A importância da programação funcional no dia a-dia
 
Microsoft C#
Microsoft C#Microsoft C#
Microsoft C#
 
TDC2018SP | Trilha Prog Funcional - Programacao funcional para humanos
TDC2018SP | Trilha Prog Funcional - Programacao funcional para humanosTDC2018SP | Trilha Prog Funcional - Programacao funcional para humanos
TDC2018SP | Trilha Prog Funcional - Programacao funcional para humanos
 
Programação Funcional para Humanos
Programação Funcional para HumanosProgramação Funcional para Humanos
Programação Funcional para Humanos
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
 
Lidando com Equipes de Desenvolvimento
Lidando com Equipes de DesenvolvimentoLidando com Equipes de Desenvolvimento
Lidando com Equipes de Desenvolvimento
 
Treinamento DDD .Net
Treinamento DDD .NetTreinamento DDD .Net
Treinamento DDD .Net
 
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
 
O papel e a carreira do arquiteto de software
O papel e a carreira do arquiteto de softwareO papel e a carreira do arquiteto de software
O papel e a carreira do arquiteto de software
 
[CEFETMG][ESw] Aula 6 - Conceitos de projeto
[CEFETMG][ESw] Aula 6 - Conceitos de projeto[CEFETMG][ESw] Aula 6 - Conceitos de projeto
[CEFETMG][ESw] Aula 6 - Conceitos de projeto
 
Linear Engineering
Linear EngineeringLinear Engineering
Linear Engineering
 
Orientação a Aspectos em PHP
Orientação a Aspectos em PHPOrientação a Aspectos em PHP
Orientação a Aspectos em PHP
 
A Arte do Código Limpo
A Arte do Código LimpoA Arte do Código Limpo
A Arte do Código Limpo
 
Design for change: Fatores que influenciam na longevidade de um Software PHP
Design for change: Fatores que influenciam na longevidade de um Software PHPDesign for change: Fatores que influenciam na longevidade de um Software PHP
Design for change: Fatores que influenciam na longevidade de um Software PHP
 
Refactoring
RefactoringRefactoring
Refactoring
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorPorque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
 
Feature-Driven Development - Visão Geral
Feature-Driven Development - Visão GeralFeature-Driven Development - Visão Geral
Feature-Driven Development - Visão Geral
 
Agile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelumAgile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelum
 
Análise de sistemas oo 1
Análise de sistemas oo   1Análise de sistemas oo   1
Análise de sistemas oo 1
 
Apresentação bichinhos da TI: o que é esse arquiteto de software
Apresentação bichinhos da TI: o que é esse arquiteto de softwareApresentação bichinhos da TI: o que é esse arquiteto de software
Apresentação bichinhos da TI: o que é esse arquiteto de software
 

DevDay BH 2011 Programação Funcional

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.