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

178
Visualizações
Función recursiva de Javascript Currying y funciones de flecha

Esto está bien y funciona:

 const power = (x,n) => { if (n === 0) return 1; return x * power(x, n - 1); }

potencia(4,3) 64

Pero tratar de hacer esto como experimento, no funciona, da NaN. No entiendo por qué:

nodo .editor // Entrar en modo editor (Ctrl+D para finalizar, Ctrl+C para cancelar)

 const power = x => { return n => { if (n === 0) return 1; return x * power(x, n - 1); } }

sea t = potencia(4) t(3) NaN

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

0

No ha convertido la llamada recursiva en la versión curry a forma curry. power(x, n - 1) es esencialmente lo mismo que power(x) porque power solo acepta un argumento, y esta es una función, por lo que no sin razón se convierte en NaN cuando intentas multiplicarlo por un número.

Reescríbelo así en su lugar:

 const power = x => { return n => { if (n === 0) return 1; return x * power(x)(n - 1); } }; console.log('4^3 = ', power(4)(3)); // 64 console.log('2^10 = ', power(2)(10)); // 1024 console.log('5^4 = ', power(5)(4)); // 625 console.log('3^4 = ', power(3)(4)); // 81

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede almacenar la función anidada y devolver la función y usar esta función para otra llamada con solo la n modificada.

 const power = x => { const fn = n => n === 0 ? 1 : x * fn(n - 1); return fn; }; console.log(power(4)(3));

about 4 years ago · Juan Pablo Isaza Relatório

0

Como estamos discutiendo formas de funciones "extrañas", también podría contribuir con mi valor de dos centavos:

También puede hacer la función curry como una sola línea como esta:

 const power = (x,pow) => pow = n => --n ? x*pow(n) : x; console.log(power(3)(4)); // 81

Esto es, por supuesto, algo que nadie en su sano juicio haría jamás. Aún así, ¡funciona!

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