DevDay 2011<br />Programação Funcional<br />
Quem sou eu?<br />Rodrigo Vidal<br />Twitter: @rodrigovidal<br />www.rodrigovidal.net<br />FocoemArquitetura de Software<b...
Meu slide não é azul parceiro... <br />É PRETO<br />
Programação Funcional<br />Antigo paradigma<br />52 anos <br />Ignorado do mainstream corporativo<br />
Isso importa?<br />Novos desafios<br />Mudança de Mindset<br />Sair da zona de conforto<br />Muitas linguagens implementam...
Object vs Function<br />
Pense diferente...!<br />“Uma linguagem que não muda sua visão sobre programação, não vale ser aprendida.”<br />	(Alan Per...
Lambda Calculus<br />Foi desenvolvido por Alonzo Church in 1930, como uma forma de estudar funções e computabilidade.<br />
Funções: O Coração<br />
C# e ai?<br />Generics<br />Iterators<br />Anonymous Methods<br />Delegates<br />
Transparência Referencial<br />Afunção depende apenas dos valores de seus parametros.<br />Modificamestado<br />Interage d...
Efeito Colateral<br />Estados<br />Função Impura<br />Saída<br />Entrada<br />Atribuição<br />
Imutabilidade<br />
Aplicação Parcial de Funções<br />
T1 -> T2 -> R<br />
Funções de Alta Ordem<br />
Recursão em Cauda<br />
Composição de Funções<br />f(x)<br />g(x)<br />
MapReduce<br />
Monads<br />
Estrutura de uma Monad<br />Haskell<br />class Monad m where <br />(>>=) :: m a -> (a -> m b) -> m b<br />Return :: a -> m...
Obrigado!<br />
Próximos SlideShares
Carregando em…5
×

DevDay BH 2011 Programação Funcional

2.270 visualizações

Publicada em

Palestra ministrada no evento DevDay BH 2011

Publicada em: Tecnologia
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.270
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1.325
Ações
Compartilhamentos
0
Downloads
9
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

DevDay BH 2011 Programação Funcional

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

×