Функторы и монады. Функциональное программирование. Часть 2 | Лекция

Поделиться
HTML-код
  • Опубликовано: 12 сен 2024
  • Вторая часть лекции о функциональном программировании.
    Коротко рассмотрены функторы и монады.
    Читал во Львове, по приглашению компании Intellias. Лекция "камерная", поэтому может содержать ненормативную лексику, некоторые неточности и strong opinions :)
    Первая часть: • Лямбда исчисление и фу...
    Код: github.com/nau...

Комментарии • 15

  • @АнтонГолубев-х3ь
    @АнтонГолубев-х3ь 4 года назад +2

    Спасибо! Пришлось посмотреть два раза с интервалом наверное год, но возникла тень понимания

    • @demimurych1
      @demimurych1 4 года назад

      потому что подача материала бездарная. что характерно почти для всех, кто пытается говорить про функциональное программирование. Я всем рекомендую найти и прочитать любого автора времен СССР. Где преподаватели, без лишних понтов очень доходчиво говорят об этом.
      Я лично за пол часа разобрался в лямда вычислениях после прочтения таких материалов, в условиях когда раньше, получал туже тень понимания, пытаясь по таким вот видео, в том числе и текущего автора, вникнуть в тему. Мне стало жалко моих потраченных часов.

    • @АнтонГолубев-х3ь
      @АнтонГолубев-х3ь 4 года назад

      @@demimurych1 посоветуйте конкретного, пожалуйста

    • @demimurych1
      @demimurych1 4 года назад

      @@АнтонГолубев-х3ь Проще всего найти цикл статей Зубинского про лямбда исчисления. Они публиковались в 2000 годах.
      И еще, поищите на трубе Виталия Брагилевского. Он очень хорошо обьясняет.

  • @dmytromarchuk3023
    @dmytromarchuk3023 5 лет назад +2

    Спасибо большое за лекцию!

  • @estestvenno_prosto
    @estestvenno_prosto 3 года назад +1

    36:33 - монады

  • @yaroslavsydorenko
    @yaroslavsydorenko 3 года назад

    А що можна почитати про fp, scala fp, fp design?

  • @onanpetrovich5501
    @onanpetrovich5501 7 лет назад

    Подскажите пожалуйста правильный ресурс по implicit, уж больно плохо они мне даются. Но только не implicit conversion, a implicit class и implicit parameter. И интересно ваше мнение по целесообразности использования таких библиотек как Cats или Scalaz, если банально стандартные функторы и монады можно свободно прописать самому. По функторам и монадам, хорошо в картинках изложено здесь: habrahabr.ru/post/183150/
    Функциональшина - это действительно как наркотик.

  • @sergiyzolotaryov692
    @sergiyzolotaryov692 7 лет назад +2

    Было бы намного удобнее смотреть в full hd или 4к. Код плохо видно.

    • @AlexanderNemish
      @AlexanderNemish  7 лет назад +2

      Согласен, но видео записывал не я, сорри. Код можно глянуть тут github.com/nau/scala-train/blob/master/core/src/main/scala/org/scalatrain/basic/FP.scala

  • @АнтонГолубев-х3ь
    @АнтонГолубев-х3ь 4 года назад

    А можно, пожалуйста, вопрос, вот эти требования к монаде, они должны выполняться на типах, или на конкретных значениях? Например (для списка) если pure делает не один элемент в списке, а два? Тогда pure(1) = {1, 1}, а flatmap( {1, 1}, pure) = {1, 1, 1, 1}, т.е. так же получился список единичек, но уже другой. Будет ли это монадой?

    • @MultiOpachki
      @MultiOpachki 4 года назад

      Должны выполняться все три закона для монад. В данном случае равенство flatmap(x, pure) == x не выполняется. А значит это не монада.

    • @АнтонГолубев-х3ь
      @АнтонГолубев-х3ь 4 года назад

      @@MultiOpachki оно выполняется, если x - это тип

    • @MultiOpachki
      @MultiOpachki 4 года назад

      @@АнтонГолубев-х3ь В твоем примере не тип передается в flatmap и явно видно, что закон не выполняется.