Как же мне сломали мозг
замыкания, вы бы знали.
Вообще концепция области видимости, на мой взгляд, самое сложное в понимании программирования. В университете нам читали C++98 и Delphi 7, и там уже было достаточно проблем с пониманием локальной области видимости в пределах функций. А когда я начал читать SICP, где всё основано на анонимных функциях, которым доступны переменные из области видимости, где эти функции были определены, это было очень, очень тяжело понять.