Василий, на низком уровне, как я понимаю, дело как раз в сборщике мусора. Он удаляет контекст завершившейся "внешней" функции, но не удаляет из него те переменные, которые были "позаимствованы" и попали в контекст "внутренней".
Но это обычно не искусственная конструкция, просто чтобы завернуть и спрятать, а возможность исполнить некий код позже, сохранив для него нужный контекст. Как альтернатива вываливанию всего, что ему понадобится, в глобальный контекст.
Василий, в джаве есть.
И в джаваскрипте он удаляет локальный мусор. Но глобальная переменная может использоваться, даже если больше ни разу не встречается в тексте скрипта - через eval, например. Так что никакое удаление мусорщиком глобальным переменным не грозит.
SantaDelToro, вот только к приведенному в вопросе коду они не имеют никакого отношения. В нем "замкнута" глобальная переменная, которой ни мусорщик, ни сокрытие данных не грозят.
SOTVM, лучше, чем что? Для моих задач - чтобы плеер играл - и Альсы за глаза.
Но я, конечно, не аудио-профи, только слышал про первое, что они делают в Линуксах ;)
dollar, для простоты понимания сюда лучше вовсе не приплетать глобальное окружение, которое существует все время, пока выполняется скрипт, и замыкать его просто банально незачем.
Carburn, разжевываю для альтернативно читающих: замыкание - это стандарт языка, позволяющий использовать в функции переменные из локальной области видимости, которые без использования замыкания должны были быть уничтожены по стандарту языка.
SOTVM, например, я сижу на своей достаточно свежей Убунте 20.04, пишу фронтенд и слушаю музыку.
Понадобилось мне в FF включить отладку скриптов, расставить брекпойнты, обновить страничку...
И тут музыка начинает люто хрипеть.
И продолжает это делать до убиения демона PulseAudio.
Вы таки можете сказать, что это проблемы не демона, а самого ФайрФокса.
Но я-то слушаю локальные MP3, в плеере, и браузер в этом не замешан вообще никак.
Вот только если у вас не известный на весь мир MathLab, а свой колхозный FunMath, то его может быть уместно начать, как это принято в других языках, с компании-автора: VasyanTech::FunMath, Во избежание пересечения с другими велосипедами.
nihi1ist, на вашем скриншоте - драный монохром. Если этот скриншот сделан с нормального просмотровщика - видимо, в файле такой вот драный скан.
А распознавалки PDF - это страшный секрет, их от Гугля прячут, как могут...
Михаил, вот как раз из-за этого понятия куча сайтов, включая Тостер, "съедают" текст ответа, в котором пишущий не потанцевал с обертками, вместо того, чтобы просто вывести то, что написано, отсекая только очевидный мусор.
Но это обычно не искусственная конструкция, просто чтобы завернуть и спрятать, а возможность исполнить некий код позже, сохранив для него нужный контекст. Как альтернатива вываливанию всего, что ему понадобится, в глобальный контекст.