johan
01.02.2012 13:31 Dům
Допустим, гипотетически, мне это нахуй не надо, я верю, что матан — зло, но меня прикалывает этот ваш программерский термин "замыкания". Какой мануал и к какому языку можно скурить за пару дней, чтобы составить себе представление, что это есть такое?
Recommended by:
@rapture
википедию?
Не вариант же.
эээ, почему? Не нашел никакого матана в статье
Потому что нихуя непонятно, чем это отличается от лямбд и как, щиорт побъери, внешняя функция может закончиться до окончания вложенной :(
замыкание — это грубо говоря возможность передавать какой-либо функции в качестве переменной другую функцию. Лямбда — это просто краткая запись функции, без присваивания ей имени.
Ну я кретинопрофан и последний раз погромировал лет семь назад, а то и более, и то на пайтоне для цымбианов. Поэтому сейчас даже не вспомню, можно ли сказать x=лямбда(тут дохуя хуйни), и что эта лямбда в итоге увидит. Хочу узнать, об этом-то и весть топик.
вот для "конечного пользователя", то есть для программиста, замыкание — это когда в языке программирования есть возможность присвоить переменной не просто число, или строку, а какую-то функцию, неважно, лямбда она или нет.
...и эта функция будет вызываться в момент каждого использования переменной же, правильно?
да
Но КАК внешняя функция может закончить работу до того, как отработает вложенная? (Это из педивикии)???
Ну вложенная функция может, например, в другом потоке выполняться, и может использовать то, что ей передали, даже если того кто передал уже нет.
Об этом я тоже в первую очередь подумал. Но ведь вроде как изначально и теоретически язьььь^Wыки программирования — отвязаны от потоков, да и для потоков есть отдельные асинхронные воркараунды же..