Анонимная функция и Лямбда

  Рет қаралды 16,100

Volodya Mozhenkov

Volodya Mozhenkov

Күн бұрын

Анонимная функция - это функция без названия.
Очевидно? Может быть. Но что такое лямбда, что такое захват контекста, как получить лямбду в функции?
Ответы на эти неочевидные вопросы вы найдёте в этом видео.

Пікірлер: 46
@uralslife
@uralslife 4 ай бұрын
Таким должен быть настоящий айтишник
@AlexRom1986
@AlexRom1986 4 жыл бұрын
Володя, Ваше объяснение божественное! Спасибо большое за Ваш труд.
@ЕваХаритонова-ц6л
@ЕваХаритонова-ц6л 2 жыл бұрын
это гениальная работа и очень талантливая, умная девушка!
@mikhail5981
@mikhail5981 2 жыл бұрын
Спасибо большое! Понятное объяснение, рад что нашел это видео
@Lard25Ukr
@Lard25Ukr 9 жыл бұрын
Уже затрагивал эту тему и впринципе разобрался, но вы прояснили все до конца. Спасибо!
@gagogoga794
@gagogoga794 4 жыл бұрын
Хотелось бы увидеть это в реальном коде и если можно на Node , спасибо все урок👍🏻
@acrrono
@acrrono 6 жыл бұрын
о боже, это же иисус!))
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 5 жыл бұрын
он пришел чтобы спасти нас
@dmitrijponkin
@dmitrijponkin 5 жыл бұрын
Хой!
@ALEM007
@ALEM007 4 жыл бұрын
Мне кажеться что я начал понимать лямду функцию:-) спасибо за объяснение!
@Alex-qt6ji
@Alex-qt6ji 7 жыл бұрын
Лайк за внешний вид. =)
@МоралевАлександр
@МоралевАлександр 6 жыл бұрын
тащемта
@TheEBPO
@TheEBPO 5 жыл бұрын
не... меня отвлекает его прикид... не могу сосредоточится на коде
@ДмПРКП
@ДмПРКП 3 жыл бұрын
Я вот не могу понять а в js какие либо функции являются лямбда выражениями?
@thomasmorgan9043
@thomasmorgan9043 9 жыл бұрын
В C++ по-моему все эти обвертки std::function, лямда просто синтаксический сахар. Можно ведь сделать функциональный объект (функтор) переопределив оператор скобок для класса. Да и компилятор может развернуть лямбду как функциональный класс. Добавили это в C++11 только для удобства. (можно и просто указатель на функцию передавать). Вся мощность лямд в функциональных языках, где нет классов. А вообще, Володь, вы отлично объясняете, но я так понимаю опыта с функциональными языками у вас не было, а эти вещи как раз от туда (там и замыкания и карринг). Рассказывайте лучше про новые стандарты C++11/14, библиотеку STL и если имели опыт, я бы на начальном уровне послушал про Boost.
@VladimirMozhenkov
@VladimirMozhenkov 9 жыл бұрын
Thomas Morgan Ну можно и вообще было убрать всю библиотеку. Простыми записями в память и вызовами функций операционной системы можно сделать всё что угодно. Проблема с Functor-ом в том, что писать приходилось в 3 раза больше чем было необходимо. У него есть своё использование, но пытаться использовать его там, где нужна лямбда совершенно не стоит. Functor для того нужен, чтобы сконструировать объект. Возможно пошагово, и потом этот объект уже вызывать как функцию через operator(). На счёт Boost. Пользовался им, но очень давно. Сейчас вообще очень многое из него уже в стандартную библиотеку перенесли. Например умные указатели раньше как раз от туда брали. И кажется функционалы как раз от туда взяли. P.S. К запросам что записывать я прислушиваюсь. К запросам что не стоит записывать нет.
@thomasmorgan9043
@thomasmorgan9043 9 жыл бұрын
Vladimir Mozhenkov Да, если убрать всю библиотеку, то получится язык Си :) А что писать в 3 раза больше? Только определение класса и функцию скобок. Да, насчет использования функтора я согласен, это не просто функция, это объект и главное преимущество то, что он обладает состоянием. Да, если запишите про умные указатели, то будет классно. Я не имел ввиду, что вам не нужно записывать было про лямбды и анонимные функции, просто они пришли с функциональных языков и их основное применение там. Возможно стоило упомянуть об этом в видео. (А также и про функтор и указатель на функцию). Я то просто повторил, но начинающие не сразу поймут суть преимуществ лямбд. Как пример использования этих вещей можно было показать показать на примере сортировки массива, написать метод sort который будет принимать на вход массив и компаратор (указатель на функцию, std::function, лямбду или функтор)
@VladimirMozhenkov
@VladimirMozhenkov 9 жыл бұрын
Thomas Morgan Functor уже записан и залит. Ждёт своего дня на выкладывание. Функтор - это что-то, что когда я в первый раз увидел, я думал я сошёл с ума. Перегрузка скобок, надо-же было до этого додуматься.
@thomasmorgan9043
@thomasmorgan9043 9 жыл бұрын
Vladimir Mozhenkov Всегда считаю перегрузку как удобство использование, это тоже самое что алиас для вызова метода. А вообще в C++ можно вызывать перегрузку операторов как метод, как-то так : myObj.operator()() Сам от этого на первом курсе сума сходил, это только временем понять нужно. Еще интересно ваше мнение насчет появления языков Go, Rust вроде говорят, что они вытесняют C/C++. Как вы считаете, какой язык будет актуальным? Насчет видео хотелось бы посмотреть про итераторы.
@maxlich9139
@maxlich9139 7 жыл бұрын
в Джаве тоже недавно появились лямбды. Хотя как я понял, там это просто сокращение анонимного класса.
@x3n0n3
@x3n0n3 5 жыл бұрын
Все хорошо, но видео, в которых рассматриваются примеры кода, лучше выполнять в IDE. Лично мне с результатом выполнения программы пример запомнится лучше.
@VladimirMozhenkov
@VladimirMozhenkov 5 жыл бұрын
Приму во внимание. Но иногда не получается такое сделать.
@adsick_ua
@adsick_ua 6 жыл бұрын
купи доску побольше, более сложные вещи будет объяснять проще.
@denistankov2243
@denistankov2243 4 жыл бұрын
а ты задонать... он купит ))))
@MrOverlord243
@MrOverlord243 5 жыл бұрын
в сишарпе они как то попроще выглядят, и записываются по другому.
@PhilippeRigovanov
@PhilippeRigovanov 9 жыл бұрын
ВырАжения
@geusfexx2844
@geusfexx2844 4 жыл бұрын
Лави гамунитария!
@soltaurus
@soltaurus 4 жыл бұрын
@@geusfexx2844 знать грамоту родного языка - просто признак образованного человека, неважно, технарь или гуманитарий
@404Negative
@404Negative 3 жыл бұрын
@@geusfexx2844 обнаружен гуманитариус эректус
@the731
@the731 6 жыл бұрын
Правильно ли я понял, то задача лямбда функций это достать определенный кусок который будет использоваться в другом месте?
@163fantom
@163fantom 3 жыл бұрын
в любом месте
@daniilornat2856
@daniilornat2856 5 жыл бұрын
Автор похож на лид гитариста из suicide silence.
@sergiysergiy8875
@sergiysergiy8875 3 жыл бұрын
Много воды без объяснений
@yaroslaveremenko4900
@yaroslaveremenko4900 Жыл бұрын
Вырожения, хехе.
@НосиковЕвгений
@НосиковЕвгений 4 жыл бұрын
На Иешуа похож )
@amyasnikov
@amyasnikov 9 жыл бұрын
Я правильно понимаю, что в C++ есть лямбда выражения, но нет анонимных функций?
@VladimirMozhenkov
@VladimirMozhenkov 9 жыл бұрын
Alexander Myasnikov Да. Как таковых анонимных функций нет. А лямбда появилась вот относительно недавно.
@RikStrigoy
@RikStrigoy 5 жыл бұрын
Фанкшн, но фуНЦия
@AlexAlex-ms3bg
@AlexAlex-ms3bg 3 жыл бұрын
.. вырОжения...
@YanPashkovsky
@YanPashkovsky 8 жыл бұрын
Какая-то странная у вас терминология. Лямбда-выражения и есть анонимные функции, только у лямбд нет захвата контекста. Также к анонимным функциям относятся замыкания, вот у них и есть тот самый захват. Такая терминология общепринята: C#, PHP, JS
@NONAME-ko5zn
@NONAME-ko5zn 6 жыл бұрын
ахахха , я испугался в начале увидя волосы , бороды
@Скыбыдыщь
@Скыбыдыщь 5 жыл бұрын
Это поп тока в программировании
@Tyn4tyk
@Tyn4tyk 3 жыл бұрын
вырОжение, дальше не стал смотреть
@skynowa2626
@skynowa2626 7 жыл бұрын
вырОжения
@404Negative
@404Negative 5 жыл бұрын
откуда под этим видосом гуманитарии ?
@ndr1111
@ndr1111 5 жыл бұрын
дурак ! какие-еще, вырОжения, от твоей рОжи чтоли ? пров. слово - выражать ! Безграмотный, так и еще грамотных учить хочет.
Анонимный Объект
11:20
Volodya Mozhenkov
Рет қаралды 6 М.
Множественное Наследование
17:18
Volodya Mozhenkov
Рет қаралды 12 М.
How Strong is Tin Foil? 💪
00:25
Brianna
Рет қаралды 47 МЛН
Osman Kalyoncu Sonu Üzücü Saddest Videos Dream Engine 269 #shorts
00:26
This dad wins Halloween! 🎃💀
01:00
Justin Flom
Рет қаралды 46 МЛН
Seja Gentil com os Pequenos Animais 😿
00:20
Los Wagners
Рет қаралды 76 МЛН
Что такое лямбда-исчисление? Душкин объяснит
13:08
Душкин объяснит
Рет қаралды 3,5 М.
Функция lambda в Python пример работы
5:39
Изучаем мир ИТ / Олег Шпагин / Программирование
Рет қаралды 10 М.
Фабричный метод
15:48
Volodya Mozhenkov
Рет қаралды 60 М.
Наследование
12:31
Volodya Mozhenkov
Рет қаралды 30 М.
Лямбда-выражения в Java 8
1:09:00
SpecialistTV
Рет қаралды 114 М.
Евклид и генерация простых чисел
9:48
Volodya Mozhenkov
Рет қаралды 16 М.
[C++] Лямбда выражения
20:27
Efremov Engineer
Рет қаралды 10 М.
Хеш Карта
11:54
Volodya Mozhenkov
Рет қаралды 29 М.
Анонимные функции в PHP
8:31
htmllab
Рет қаралды 3,9 М.
How Strong is Tin Foil? 💪
00:25
Brianna
Рет қаралды 47 МЛН