>>5162363
Вообще, это более простая концепция, чем то, что вы перечислили. Она придумана как модель подстановок выражений на доске, листке бумаги или в уме.
Наверное, так: давайте не думать о реализации. Тогда для написания кода нам в принципе достаточно всего-навсего двух вещей: определений функций и их применений. Например, мы можем обойтись без импортов и объявлений переменных: импорты - это аргументы нашего кода, а переменные и константы - определения функции, которую мы сразу вызываем с нужными значениями.
Выгода в том, что оперируя такими штуками, мы пользуемся полной свободой. Например, правильно написав цикл один раз, мы можем, если захотим, коротко переиспользовать его, и быть уверены, что он работает правильно, если мы лишь правильно его вызывали.
А замыкания - это механизм управления памятью, который нужен, чтобы работали такие подстановки.
Мне крайне не нравятся мои объяснения, но мне тоже надо работать, причём прямо сейчас. Сорри!