> -- Geniepro писал(а):
> Ведь это просто функция, которая имеет доступ к внутренним переменным и функциям другой функции, где они все определены, и которая может быть возвращена в качестве результата или передана как параметр в третьи функции... Что тут непонятного-то?

Я вот всегда рассматривал локальные переменные, как изолированные от основной программы. Для меня это способ обеспечить безопасность кода. Смысл этих переменных ограничен границами процедуры. Поскольку переменные локальные, то за пределами процедуры они смысл теряют.

Теперь, оказывается, могут быть такиеclosures, которые могут этот смысл передать наружу. Для меня (лично для меня), это непонятно. Зачем заключать внешний смысл в скорлупу, которая предназначена для хранения только внутренних смыслов?