Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

187
Vistas
¿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 Respuestas
Responde la pregunta

0

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

about 4 years ago · Juan Pablo Isaza Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda