Upgrade to Pro — share decks privately, control downloads, hide ads and more …

O verdadeiro porquê da Programação Funcional

O verdadeiro porquê da Programação Funcional

Muitos acreditam que Programação Funcional se resume em Map, Filter e Reduce. Nessa mini-palestra irei apresentar os verdadeiros benefícios por trás do desenvolvimento no paradigma funcional.

https://twitter.com/matheusml
https://matheuslima.com/

Matheus Lima

May 11, 2016
Tweet

More Decks by Matheus Lima

Other Decks in Programming

Transcript

  1. Funções Puras var daysThisMonth = function() { var date =

    new Date(); var year = date.getFullYear(); var month = date.getMonth(); var start = new Date(year, month, 1); var end = new Date(year, month + 1, 1); return Math.round((end - start) / (1000 * 60 * 60 * 24)); };
  2. Funções Puras /* Se invocar em Março */ daysThisMonth(); //

    31 /* Se invocar em Abril */ daysThisMonth(); // 30
  3. Funções Puras var daysInMonth = function(year, month) { var start

    = new Date(year, month - 1, 1); var end = new Date(year, month, 1); return Math.round((end - start) / (1000 * 60 * 60 * 24)); };
  4. Funções Puras /* Se invocar em Março */ daysInMonth(2016, 3);

    // 31 daysInMonth(2016, 3); // 31 daysInMonth(2016, 3); // 31 /* Se invocar em Abril */ daysInMonth(2016, 4); // 30 daysInMonth(2016, 4); // 30
  5. Funções Puras var counter = 0; var increment = function()

    { counter = counter + 1; return counter; };
  6. Funções Puras 1. Dado um parâmetro x sempre retornará y

    2. Não geram side-effects 3. Devem ser stateless
  7. Funções Puras var print = function() { for (var i

    = 1; i <= 10; i++) { console.log(i); } };
  8. Funções Puras var print = function(n) { if (n >

    0) { print(n-1); console.log(n); } };
  9. Funções Puras print(10); var print = function(10) { if (10

    > 0) { print(10-1); console.log(10); } };
  10. Funções Puras print(10); var print = function(10) { if (10

    > 0) { if (9 > 0) { print(9-1); console.log(9); } console.log(10); } };
  11. Programação Funcional • Mais antiga que OO e Estruturada (1957)

    • Mais elegante • Mais fácil de testar e manter
  12. Programação Funcional • Mais antiga que OO e Estruturada (1957)

    • Mais elegante • Mais fácil de testar e manter • Multi-core friendly
  13. Programação Funcional • Mais antiga que OO e Estruturada (1957)

    • Mais elegante • Mais fácil de testar e manter • Multi-core friendly • Gasta mais memória :(
  14. Programação Funcional • Mais antiga que OO e Estruturada (1957)

    • Mais elegante • Mais fácil de testar e manter • Multi-core friendly • Gasta mais memória :)
  15. www.concretesolutions.com.br blog.concretesolutions.com.br Rio de Janeiro – Rua São José, 90

    – cj. 2121 Centro – (21) 2240-2030 São Paulo - Rua Sansão Alves dos Santos, 433 4º andar - Brooklin - (11) 4119-0449