En informatique, une fermeture est une fonction qui a un environnement qui lui est propre. Dans cet environnement, il existe au moins une variable liée (un nom qui a une valeur, comme un nombre). L'environnement de la fermeture garde les variables liées en mémoire entre les utilisations de la fermeture.

Peter J. Landin a donné à cette idée le nom de fermeture en 1964. Le langage de programmation Scheme a rendu les fermetures populaires après 1975. De nombreux langages de programmation créés après cette date ont été fermés.

Les fonctions anonymes (fonctions sans nom) sont parfois appelées à tort des fermetures. La plupart des langues qui ont des fonctions anonymes ont également des fermetures. Une fonction anonyme est également une fermeture si elle possède un environnement propre avec au moins une variable liée. Une fonction anonyme sans environnement propre n'est pas une fermeture. Une fermeture nommée n'est pas anonyme.