DEV Community

Agustín Rafael Zárate
Agustín Rafael Zárate

Posted on • Updated on

Funciones puras - Javascript

Funciones puras
Son funciones que producen un mismo output para un mismo input. Serán aquellas retornan un resultado predecible en base a los parametros que nosotros le pasemos.

Estas deben cumplir con dos requisitos basicos:

  • Dado unos parámetros de entrada de idéntico valor, la función siempre devolverá el mismo resultado.

  • El cómputo de la función, su lógica, no implica ningún efecto observable colateral fuera de ella (inmutabilidad de los parametros).

La funcion sayGreeting() es una funcion pura ya que solo con leerla sabemos que va a retornar "Hello" seguido del nombre que le pasemos por parámetro.

function sayGreeting(name) {
  return `Hello ${name}`;
}
Enter fullscreen mode Exit fullscreen mode

Pero si revisamos el siguiente ejemplo

function whatTimeIsIt(name: string) : string {
  const time = new Date().toLocaleTimeString();

  return "Hello" + name + ", it's" + time ;
}
Enter fullscreen mode Exit fullscreen mode

Ya no seria una funcion pura, puesto que requiere de un elemento externo ademas de sus parametro para devolver el resultado, el cual NO devuelve el mismo output para un mismo input y por consecuencia NO es predecible.

Otro ejemplo muy común de una funcion pura son los action creators (acciones despachadas que son interceptadas por redux para realizar una acción en el store).

Supongamos que queremos crear una tarea de un to do list

interface Task { 
    title: string;
    description: string
}

const addTaskAction = (payload: Task) => ({
   type: "addTask",
   payload
 })
Enter fullscreen mode Exit fullscreen mode

La funcion addTaskAction() es una funcion pura ya que retorna un objeto que describe algo especifico que va suceder y es predecible.

Top comments (0)