In functional programming, a closure is a function-like entity that can capture variables from the surrounding environment. Unlike regular functions, they’re able to access and modify variables from the enclosing scope.