From 527e8eef3d0bb8e68beade896fae63481e618af8 Mon Sep 17 00:00:00 2001 From: Ekaitz Zarraga Date: Sat, 23 Nov 2019 16:53:58 +0100 Subject: closures --- src/04_funciones.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/04_funciones.md b/src/04_funciones.md index eee27fb..3aa3c51 100644 --- a/src/04_funciones.md +++ b/src/04_funciones.md @@ -298,6 +298,20 @@ independientes, aunque se llamen de la misma forma en su concepción, no se pisaron la una a la otra, porque pertenecían a contextos distintos ya que la función que las creaba terminó y luego volvió a iniciarse. +Este funcionamiento donde el comportamiento de las funciones depende del lugar +donde se crearon y no del contexto donde se ejecutan se conoce como *scope +léxico* y esta forma de implementarlo, haciendo que cada función recuerde el +contexto en el que se creó se denomina *closure*. + +Concretamente, las *closures* son una forma de implementar el *scope léxico* en +un lenguaje cuyas funciones sean *first-class citizens*, como es el caso de +python, y su funcionamiento se basa en la construcción de los contextos y su +asociación a una función capaz de recordarlos aunque la función madre haya +terminado. + +A nivel práctico, las *closures* son útiles. + +TODO ## Argumentos de entrada -- cgit v1.2.3