Closure (computer programming)
Designers of software libraries can allow users to customize behavior by passing closures as arguments to important functions.  For example, a function that sorts values can accept a closure argument that compares the values to be sorted according to a user-defined criterion.