Blog de Gonzalo

FUNCIONES PURAS VS IMPURAS EN JAVASCRIPT

El concepto de función pura o de función impura viene dado por si el resultado de la función depende solamente de los parámetros o si depende de los parámetros y de otros factores. Para definir lo de una manera más formal sería:

Función Pura

  • Siempre devuelve el mismo resultado si se pasan los mismos parámetros.
  • Nunca depende de ningún estado/dato/cambio durante la ejecución de un programa.
  • Siempre devuelve algo.
  • Definir los casos de prueba será sencillo.
  • Algunas funciones puras: Array.map(), Array.reduce(), Array.filter(), Array.concat().

Función Impura

  • Cambia el estado interno de cualquier parámetro que se haya pasado a la función.
  • Puede tener efecto sin devolver nada.
  • Escribir casos de prueba será un poco complicado.
  • Algunas funciones impuras: Array.splice(), Array.sort(), Date.now(), Math.random().

Compartir en twitter