Los closures son una técnica con la cual podemos tener una función que mantiene un estado, parecido a un objeto, a diferencia que la función de primer orden guardada en una variable esta lista para ejecutarse como tal, como una función.
En el siguiente video te muestro 3 ejemplos de la vida real donde puedes aplicar closures.