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

111
Visualizações
Currying y reducir en javascript

¿Por qué al principio obtengo 80, luego 88 y luego 90? ¿Alguien puede explicar en detalle lo que está sucediendo en la función de compose ?

 const compose = (...fns) => fns.reduce((f, g) => (...args) => f(g(...args))); const sum = a => b => a + b const multiply = a => b => a * b const addTransactionFee = sum(2) const addTax = multiply(1.1) const addMonthlyPromotion = multiply(0.8) const log = a => { console.log(a) return a } const paymentAmount = compose( log, addTransactionFee, log, addTax, log, addMonthlyPromotion )(100)

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

En su lugar, puede utilizar la recursividad. De esta forma se conserva (y no se invierte) el orden de las funciones.

 const recursion = (value, func, ...fns) => func ? recursion(func(value), ...fns) : value; const paymentAmount = (amount) => recursion( amount, log, addTransactionFee, log, addTax, log, addMonthlyPromotion, log );
about 4 years ago · Juan Pablo Isaza Relatório

0

La función de composición con el ciclo de reduce... tome la función correcta (la última ( addMonthlyPromotion() )) y obtenga el resultado de 100 * 0.8 para que tenga 80 en el primer ciclo. Luego tienes el segundo ciclo con la segunda función ( addTax() ) multiplica el resultado anterior de (80) con 1.1 entonces 88. Y el ciclo final y el tercero de reducir con la función ( addTransactionFee() ) agrega 2 en su número anterior por lo que 90.

Ahora la función de composición va de derecha a izquierda de la función en bucle y realiza los cálculos.

about 4 years ago · Juan Pablo Isaza Relatório
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