Анонимная функция - это функция без названия. Очевидно? Может быть. Но что такое лямбда, что такое захват контекста, как получить лямбду в функции? Ответы на эти неочевидные вопросы вы найдёте в этом видео.
Пікірлер: 46
@uralslife4 ай бұрын
Таким должен быть настоящий айтишник
@AlexRom19864 жыл бұрын
Володя, Ваше объяснение божественное! Спасибо большое за Ваш труд.
@ЕваХаритонова-ц6л2 жыл бұрын
это гениальная работа и очень талантливая, умная девушка!
@mikhail59812 жыл бұрын
Спасибо большое! Понятное объяснение, рад что нашел это видео
@Lard25Ukr9 жыл бұрын
Уже затрагивал эту тему и впринципе разобрался, но вы прояснили все до конца. Спасибо!
@gagogoga7944 жыл бұрын
Хотелось бы увидеть это в реальном коде и если можно на Node , спасибо все урок👍🏻
@acrrono6 жыл бұрын
о боже, это же иисус!))
@Das.Kleine.Krokodil5 жыл бұрын
он пришел чтобы спасти нас
@dmitrijponkin5 жыл бұрын
Хой!
@ALEM0074 жыл бұрын
Мне кажеться что я начал понимать лямду функцию:-) спасибо за объяснение!
@Alex-qt6ji7 жыл бұрын
Лайк за внешний вид. =)
@МоралевАлександр6 жыл бұрын
тащемта
@TheEBPO5 жыл бұрын
не... меня отвлекает его прикид... не могу сосредоточится на коде
@ДмПРКП3 жыл бұрын
Я вот не могу понять а в js какие либо функции являются лямбда выражениями?
@thomasmorgan90439 жыл бұрын
В C++ по-моему все эти обвертки std::function, лямда просто синтаксический сахар. Можно ведь сделать функциональный объект (функтор) переопределив оператор скобок для класса. Да и компилятор может развернуть лямбду как функциональный класс. Добавили это в C++11 только для удобства. (можно и просто указатель на функцию передавать). Вся мощность лямд в функциональных языках, где нет классов. А вообще, Володь, вы отлично объясняете, но я так понимаю опыта с функциональными языками у вас не было, а эти вещи как раз от туда (там и замыкания и карринг). Рассказывайте лучше про новые стандарты C++11/14, библиотеку STL и если имели опыт, я бы на начальном уровне послушал про Boost.
@VladimirMozhenkov9 жыл бұрын
Thomas Morgan Ну можно и вообще было убрать всю библиотеку. Простыми записями в память и вызовами функций операционной системы можно сделать всё что угодно. Проблема с Functor-ом в том, что писать приходилось в 3 раза больше чем было необходимо. У него есть своё использование, но пытаться использовать его там, где нужна лямбда совершенно не стоит. Functor для того нужен, чтобы сконструировать объект. Возможно пошагово, и потом этот объект уже вызывать как функцию через operator(). На счёт Boost. Пользовался им, но очень давно. Сейчас вообще очень многое из него уже в стандартную библиотеку перенесли. Например умные указатели раньше как раз от туда брали. И кажется функционалы как раз от туда взяли. P.S. К запросам что записывать я прислушиваюсь. К запросам что не стоит записывать нет.
@thomasmorgan90439 жыл бұрын
Vladimir Mozhenkov Да, если убрать всю библиотеку, то получится язык Си :) А что писать в 3 раза больше? Только определение класса и функцию скобок. Да, насчет использования функтора я согласен, это не просто функция, это объект и главное преимущество то, что он обладает состоянием. Да, если запишите про умные указатели, то будет классно. Я не имел ввиду, что вам не нужно записывать было про лямбды и анонимные функции, просто они пришли с функциональных языков и их основное применение там. Возможно стоило упомянуть об этом в видео. (А также и про функтор и указатель на функцию). Я то просто повторил, но начинающие не сразу поймут суть преимуществ лямбд. Как пример использования этих вещей можно было показать показать на примере сортировки массива, написать метод sort который будет принимать на вход массив и компаратор (указатель на функцию, std::function, лямбду или функтор)
@VladimirMozhenkov9 жыл бұрын
Thomas Morgan Functor уже записан и залит. Ждёт своего дня на выкладывание. Функтор - это что-то, что когда я в первый раз увидел, я думал я сошёл с ума. Перегрузка скобок, надо-же было до этого додуматься.
@thomasmorgan90439 жыл бұрын
Vladimir Mozhenkov Всегда считаю перегрузку как удобство использование, это тоже самое что алиас для вызова метода. А вообще в C++ можно вызывать перегрузку операторов как метод, как-то так : myObj.operator()() Сам от этого на первом курсе сума сходил, это только временем понять нужно. Еще интересно ваше мнение насчет появления языков Go, Rust вроде говорят, что они вытесняют C/C++. Как вы считаете, какой язык будет актуальным? Насчет видео хотелось бы посмотреть про итераторы.
@maxlich91397 жыл бұрын
в Джаве тоже недавно появились лямбды. Хотя как я понял, там это просто сокращение анонимного класса.
@x3n0n35 жыл бұрын
Все хорошо, но видео, в которых рассматриваются примеры кода, лучше выполнять в IDE. Лично мне с результатом выполнения программы пример запомнится лучше.
@VladimirMozhenkov5 жыл бұрын
Приму во внимание. Но иногда не получается такое сделать.
@adsick_ua6 жыл бұрын
купи доску побольше, более сложные вещи будет объяснять проще.
@denistankov22434 жыл бұрын
а ты задонать... он купит ))))
@MrOverlord2435 жыл бұрын
в сишарпе они как то попроще выглядят, и записываются по другому.
@PhilippeRigovanov9 жыл бұрын
ВырАжения
@geusfexx28444 жыл бұрын
Лави гамунитария!
@soltaurus4 жыл бұрын
@@geusfexx2844 знать грамоту родного языка - просто признак образованного человека, неважно, технарь или гуманитарий
@404Negative3 жыл бұрын
@@geusfexx2844 обнаружен гуманитариус эректус
@the7316 жыл бұрын
Правильно ли я понял, то задача лямбда функций это достать определенный кусок который будет использоваться в другом месте?
@163fantom3 жыл бұрын
в любом месте
@daniilornat28565 жыл бұрын
Автор похож на лид гитариста из suicide silence.
@sergiysergiy88753 жыл бұрын
Много воды без объяснений
@yaroslaveremenko4900 Жыл бұрын
Вырожения, хехе.
@НосиковЕвгений4 жыл бұрын
На Иешуа похож )
@amyasnikov9 жыл бұрын
Я правильно понимаю, что в C++ есть лямбда выражения, но нет анонимных функций?
@VladimirMozhenkov9 жыл бұрын
Alexander Myasnikov Да. Как таковых анонимных функций нет. А лямбда появилась вот относительно недавно.
@RikStrigoy5 жыл бұрын
Фанкшн, но фуНЦия
@AlexAlex-ms3bg3 жыл бұрын
.. вырОжения...
@YanPashkovsky8 жыл бұрын
Какая-то странная у вас терминология. Лямбда-выражения и есть анонимные функции, только у лямбд нет захвата контекста. Также к анонимным функциям относятся замыкания, вот у них и есть тот самый захват. Такая терминология общепринята: C#, PHP, JS
@NONAME-ko5zn6 жыл бұрын
ахахха , я испугался в начале увидя волосы , бороды
@Скыбыдыщь5 жыл бұрын
Это поп тока в программировании
@Tyn4tyk3 жыл бұрын
вырОжение, дальше не стал смотреть
@skynowa26267 жыл бұрын
вырОжения
@404Negative5 жыл бұрын
откуда под этим видосом гуманитарии ?
@ndr11115 жыл бұрын
дурак ! какие-еще, вырОжения, от твоей рОжи чтоли ? пров. слово - выражать ! Безграмотный, так и еще грамотных учить хочет.