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

Programação Funcional com Currying

Programação Funcional com Currying

Nesta apresentação vou falar sobre o básico de currying mostrando o qual útil pode ser essa técnica.

Avatar for Jeftar Mascarenhas

Jeftar Mascarenhas

January 27, 2017

More Decks by Jeftar Mascarenhas

Other Decks in Programming

Transcript

  1. Sobre Currying - Quem cunhou o termo “Currying” foi Haskell

    Curry um dos primeiro a investiga essa técnica. - Currying é padrão em linguagem funcionais com Haskell e Scala.
  2. “Definição Currying” - Currying faz com que uma função que

    espera múltiplos argumentos ao receber menos argumentos retorne uma função que espera o restante dois argumentos aparecerem. - JavaScript é funcional mais não tem currying como padrão(até o momento), mas podemos implementarmos.
  3. Função de apresentação utilizando currying Veja que a função aguarda

    três parâmetros, passamos apenas dois parâmetros e o terceiro é passado posteriormente.
  4. E se falta um parâmetro o que é Retornado? Agora

    não passamos o terceiro parâmetro com isso o retorno é uma função que espera o restante dos argumento.
  5. Essa abordagem é muito poderosa! - Você escreve funções com

    grade set de informações mesmo não tendo esse set de informações disponíveis. - Escrever menos código - Evitar repetições - Ajuda no desenvolvimento funcional - infinitas possibilidades….
  6. Qual o problema ? - Para construir funções curried você

    precisa manter o aninhamento de funções retornadas - Chamá-las com novas funções que exigem vários conjuntos de parênteses, cada um contendo seu próprio argumento isolado - Pode ficar confuso pra caralho “Return Hell”