Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

160
Visualizações
Refactoring Javascript code to use Transduction

I have a doubt related to transduction in functional programming
If I have an operation - arr.map(A).map(B).filter(C).filter(D).map(E).map(F)
To remove the intermediate creation of arrays, can I rewrite it as -

import _ from "lodash"

const mapReducer = (mapperFn) => (combinerFn) => (acc, val) =>
  combinerFn(acc, mapperFn(val));

const filterReducer = (predicateFn) => (combinerFn) => (acc, val) =>
  predicateFn(val) ? combinerFn(acc, val) : acc;

const push = (arr, x) => { arr.push(x); return arr }

const transducer = _.flowRight(
  mapReducer(_.flowRight(B, A)),
  filterReducer(_.flowRight(D, C)),
  mapReducer(_.flowRight(F, E))
)
arr.reduce(transducer(push), [])
about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda