A closure is an abstraction in a functional programming language (e.g. Scheme) that represents a function and the scope in which it was created (lexical environment). This abstraction is also referred to as a function object.