лямбда-функция представляют собой объект класса Closure
В C++14 в момент создания объекта со значениями переменных, можно указать, что и как захватывать (по ссылке или по значению). Был бы это Паскаль со вложенными функциями, тогда было бы понятно, откуда замыкание взялось - это формализация, возникшая в процессе обработки языка. А зачем замыкание использовать просто так - неясно. Ну лямбды анонимные, и чего? В чём профит-то? Примеры из туториала MS про лямбды не вдохновили.
Мне не хватает в описании википедии примеров, где этот приём "захвата контекста" бы помогал.
Как и для чего его можно массивно использовать? Вот чтобы это было основой реализации прикладной программы.
Ощущение, как будто фантастический сериал читаю: "сейчас он выстрелит тахионом и создатся пространственно-временной пузырь вокруг цели".
Сложность языка возрастает (то есть количество концепций для изучения, а значит и время изучения возрастает), а экономия при практическом использовании не расписана.
К тому же не просто вводит новую концепцию, а создаёт слова - омонимы (одинаково пишутся, но разное означают)
https://www.linux.org.ru/forum/development/9435136
замыкание в математике — https://en.wikipedia.org/wiki/Closure_(mathematics).
замыкание в программировании — https://en.wikipedia.org/wiki/Closure_( … r_science).
Омонимия ведёт к путанице.
"Введение в PHP 5.3 замыканий — одно из главных его новшеств"
Они повсюду, Карл!
"Не совсем понятно применение такого функционала в разработке web-приложений."
вот-вот.
"использование лямбд с замыканиями в качестве функций обратного вызова (callbacks)"
эээ, делегаты и события есть, для них не нужен захват
"накладные расходы на большое количество вызовов функций дают ощутимый спад в производительности, чего и следовало ожидать."
ну тем более.
"хорошее применение замыканий — создание функций, в свою очередь тоже создающих функции"
эээ... я и через рефлекшен так могу... и не только функции, но и процедуры
"Многие из примеров выглядят натянуто. Сколько лет жили без них — и ничего."
"замыкания усложняют отладку и поддержку кода. А если неаккуратно ними пользоваться, то может еще и память течь. "
вот-вот.
"Главное использовать их с умом и только тем, где это действительно удобно и нужно, а не потому что «это круто, модно, современно»."
это например как?
Отредактировано Лис (2017-03-27 13:18:23)