diff options
author | Ekaitz Zarraga <ekaitz@elenq.tech> | 2019-11-23 16:53:58 +0100 |
---|---|---|
committer | Ekaitz Zarraga <ekaitz@elenq.tech> | 2019-11-23 16:53:58 +0100 |
commit | 527e8eef3d0bb8e68beade896fae63481e618af8 (patch) | |
tree | 381abfc95876b49c4cf7894238e9acac6210bc99 /src | |
parent | fc0a97598f058992164881fb15bbbb9e5e7a04bc (diff) |
closures
Diffstat (limited to 'src')
-rw-r--r-- | src/04_funciones.md | 14 |
1 files changed, 14 insertions, 0 deletions
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 |