MHMH - разве это не спрашивалось раньше?
Эффективная обработка закрытия.Поскольку замыкания используются в Lisp и Smalltalk (там они называются «Block») MUCH чаще, чем почти в любом другом языке программирования, реализация должна быть очень быстрой.Таким образом, распределение стека - это то, что мы хотим для скорости.Но, поскольку «настоящие» замыкания могут пережить свой определяющий фрейм стека методов, необходимо позаботиться о том, чтобы вывести их из стека, если это необходимо.Замыкания полезны везде: обратные вызовы, протоколы перечисления / сбора, длинные скачки, очереди рабочих действий, протоколы наблюдателей, отложенная оценка (фьючерсы и ленивые) и многое другое.Кстати: JavaScript также поддерживает замыкания!