closure (clôture)
En Scheme, une clôture (en anglais, closure) est créée
lorsqu’une fonction, généralement une expression lambda, est passée en
tant que variable. La clôture comporte, en plus du code de la fonction,
des références à des variables libres dans l’environnement lexical –
variables utilisées dans l’expression mais définies ailleurs. Lorsque
la fonction est par la suite appliquée aux différents arguments, les
références aux variables libres, capturées par la clôture, permettent
d’obtenir la valeur de ces variables libres qui sera utilisée lors des
calculs. L’une des propriétés intéressantes des clôtures est la
rétention de la valeur de variables internes tout au long des
différentes invocations, leur état étant alors persistant.