Функторы и монады. Функциональное программирование. Часть 2 | Лекция
HTML-код
- Опубликовано: 12 сен 2024
- Вторая часть лекции о функциональном программировании.
Коротко рассмотрены функторы и монады.
Читал во Львове, по приглашению компании Intellias. Лекция "камерная", поэтому может содержать ненормативную лексику, некоторые неточности и strong opinions :)
Первая часть: • Лямбда исчисление и фу...
Код: github.com/nau...
Спасибо! Пришлось посмотреть два раза с интервалом наверное год, но возникла тень понимания
потому что подача материала бездарная. что характерно почти для всех, кто пытается говорить про функциональное программирование. Я всем рекомендую найти и прочитать любого автора времен СССР. Где преподаватели, без лишних понтов очень доходчиво говорят об этом.
Я лично за пол часа разобрался в лямда вычислениях после прочтения таких материалов, в условиях когда раньше, получал туже тень понимания, пытаясь по таким вот видео, в том числе и текущего автора, вникнуть в тему. Мне стало жалко моих потраченных часов.
@@demimurych1 посоветуйте конкретного, пожалуйста
@@АнтонГолубев-х3ь Проще всего найти цикл статей Зубинского про лямбда исчисления. Они публиковались в 2000 годах.
И еще, поищите на трубе Виталия Брагилевского. Он очень хорошо обьясняет.
Спасибо большое за лекцию!
36:33 - монады
А що можна почитати про fp, scala fp, fp design?
Подскажите пожалуйста правильный ресурс по implicit, уж больно плохо они мне даются. Но только не implicit conversion, a implicit class и implicit parameter. И интересно ваше мнение по целесообразности использования таких библиотек как Cats или Scalaz, если банально стандартные функторы и монады можно свободно прописать самому. По функторам и монадам, хорошо в картинках изложено здесь: habrahabr.ru/post/183150/
Функциональшина - это действительно как наркотик.
Было бы намного удобнее смотреть в full hd или 4к. Код плохо видно.
Согласен, но видео записывал не я, сорри. Код можно глянуть тут github.com/nau/scala-train/blob/master/core/src/main/scala/org/scalatrain/basic/FP.scala
А можно, пожалуйста, вопрос, вот эти требования к монаде, они должны выполняться на типах, или на конкретных значениях? Например (для списка) если pure делает не один элемент в списке, а два? Тогда pure(1) = {1, 1}, а flatmap( {1, 1}, pure) = {1, 1, 1, 1}, т.е. так же получился список единичек, но уже другой. Будет ли это монадой?
Должны выполняться все три закона для монад. В данном случае равенство flatmap(x, pure) == x не выполняется. А значит это не монада.
@@MultiOpachki оно выполняется, если x - это тип
@@АнтонГолубев-х3ь В твоем примере не тип передается в flatmap и явно видно, что закон не выполняется.