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

186
Visualizações
¿Una función que recibe una función como parámetro todavía puede considerarse una función pura?

¿Es addVat una función pura?

 function addVat(country, getVat, amount) { if(amount > 0) { return amount + getVat(country)*amount } return amount }

Tener una función como parámetro - getVat - ¿hace que addVat sea automáticamente impuro?

Dependiendo de la implementación de getVat, podríamos introducir efectos secundarios... getVat podría devolver un valor aleatorio haciendo impredecible el resultado de addVat.

 const getVat = ()=> Math.random() addVat('UK',getVat, 20)

Caso de producir efectos secundarios externos...

 const getVat = ()=> { updateDbWithVatUsed(0.2) return 0.2 } addVat('UK',getVat, 20)

Por otro lado, la prueba unitaria es factible ya que los efectos secundarios o la variabilidad de los datos están fuera de la función pura y podemos bloquear esto para que la prueba sea totalmente predecible.

 const getUKVat = ()=> 0.2 assert.equal(addVat('UK',getUkVat, 20), 24)

Mis dudas vienen de... ¿la pureza se define como lo que hace la función excluyendo todo lo que sucede con una llamada externa que se ha pasado como parámetro?

De lo contrario, dado que la función de alto orden es un tema para la programación funcional... ¿no hace que sea imposible clasificar una función como pura por sí misma sin tener en cuenta las consideraciones de invocación?

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

0

Creo que depende de getVat() . Si getVat() es puro addVat() también es puro :)

about 4 years ago · Juan Pablo Isaza Relatório

0

El lenguaje Javascript no impone la pureza y, por lo tanto, es imposible garantizar la pureza de una función que invoca funciones pasadas como argumentos. Este hilo podría ayudar.

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