История изменений
Исправление
drBatty,
(текущая версия)
:
Получается просто, что процедура использует глобальные переменные, ничего примечательного тут вроде и нет.
в ФП есть — это быдлокод называется.
На самом деле, замыкание, это связь функции с переменной из другого контекста. Вот пример из вики:
def counter():
x = 0
def increment(y):
nonlocal x
x += y
print(x)
return increment
эта функция возвращает замыкание из другой функции(increment()) и переменной x. Т.е. замыкание это такой хитрый объект, который является функцией с какими-то переменными, но эти переменные не являются локальными для функции.
В классических ЯП замыканий быть не может, т.к. нет нормальных объектов-функций. Имитации/костыли из C++11 не совсем то, хотя и работает.
Исходная версия
drBatty,
:
Получается просто, что процедура использует глобальные переменные, ничего примечательного тут вроде и нет.
в ФП есть — это быдлокод называется.
На самом деле, замыкание, это связь функции с переменной из другого контекста. Вот пример из вики:
def counter():
x = 0
def increment(y):
nonlocal x
x += y
print(x)
return increment
эта функция возвращает замыкание из другой функции(increment()) и переменной x. Т.е. замыкание это такой хитрый объект, который является функцией с какими-то переменными, но эти переменные не являются локальными для функции.
В классических ЯП замыканий быть не может, т.к. нет нормальных объектов-функций. Имитации/костыли из C++11 не совсем то, хотя и работает.