There are two kinds of lambda expressions: combinators, which only combine their arguments and make no reference to any other variables; and open functions, which refer to variables that are not bound by the lambda expression.
A closure is an open function paired with an environment that maps the unbound variables to values. The pairing is called a closed function, or the closure of an open function.
A closure is an open function paired with an environment that maps the unbound variables to values. The pairing is called a closed function, or the closure of an open function.