Каково точное определение замыкания?
Я читал предыдущие темы о замыканиях стекового потока и других источниках, и одна вещь все еще смущает меня. Из того, что я смог соединить технически, замыкание представляет собой просто набор данных, содержащий код функции и значениеbound variables в этой функции.
Другими словами, технически следующая функция C должна быть закрыта от моего понимания:
int count()
{
static int x = 0;
return x++;
}
Однако все, что я читаю, похоже, подразумевает, что замыкания должны как-то включать передачу функций в качестве объектов первого класса. Кроме того, обычно подразумевается, что замыкания не являются частью процедурного программирования. Это тот случай, когда решение чрезмерно связано с проблемой, которую оно решает, или я неправильно понимаю точное определение?