closure
In Scheme, si parla di closure (chiusura) quando una funzione,
di solito un’espressione lambda, viene passata come variabile. La
chiusura contiene il codice della funzione più i riferimenti ai
collegamenti lessicali delle variabili libere della funzione (ovvero
quelle variabili usate nell’espressione ma definite al di fuori di
essa). Quando questa funzione viene applicata a diversi argomenti
successivamente, i collegamenti delle variabili libere che sono
stati catturati nella chiusura vengono usati per ottenere i valori
delle variabili libere da usare nel calcolo. Una caratteristica
utile delle chiusure è la conservazione dei valori delle variabili
interne tra un’invocazione e l’altra, facendo sì che uno stato possa
essere mantenuto.