Функциональное Программирование - что это? Объясняем с примерами, что стоит знать новичкам

Sdílet
Vložit
  • čas přidán 8. 03. 2024
  • Обсуждаем плюсы и минусы ФП, а также отличия от других подходов.

Komentáře • 14

  • @heater-hater
    @heater-hater Před 4 měsíci

    спасибо за труд😊

    • @DariaShatova
      @DariaShatova  Před 4 měsíci

      Спасибо за комментарий! 🩷

    • @VitaliyZlobin
      @VitaliyZlobin Před 18 dny

      А за что именно спасибо? Что ты понял из этого видео?

  • @chiricktheseal
    @chiricktheseal Před 3 měsíci

    Спасибо от студентов!!!

    • @DariaShatova
      @DariaShatova  Před 2 měsíci

      😍🫶🏼

    • @VitaliyZlobin
      @VitaliyZlobin Před 18 dny

      А за что именно спасибо? Что ты понял из этого видео?

  • @scherbakovss2012
    @scherbakovss2012 Před 2 měsíci +1

    Чем функциональное программирование отличается от структурного например сварить борщ?

    • @DariaShatova
      @DariaShatova  Před měsícem +1

      Отличается чистотой функций, в структурном подходе они могут иметь побочные эффекты, а в ФП - нет.
      В Структурном походе каждая функция выполняет конкретную задачу, а основная функция "приготовить борщ" последовательно вызывает их, чтобы приготовить борщ. Тут мы будем использовать функции для выполнения каждой отдельной задачи, а затем объединять их последовательно для достижения конечного результата.
      В функциональном подходе мы будем использовать чистые функции и избегать побочных эффектов. Тут каждая функция возвращает новое состояние, не изменяя входные данные. Основная функция "приготовить борщ" последовательно передает результат одной функции в другую, чтобы приготовить борщ.
      В общем, оба подхода могут быть эффективными и в зависимости от предпочтений программиста можно использовать хоть тот, хоть другой.
      Структурный подход:
      - Использует последовательность вызова функций.
      - Изменяет состояние через переменные и функции с побочными эффектами.
      - Фокусируется на шаг за шагом выполнении задач.
      Функциональный подход:
      - Использует чистые функции, которые возвращают новое состояние.
      - Избегает изменения состояния, работая с неизменяемыми данными.
      - Фокусируется на преобразовании данных через функции.

  • @dmitry-lz1ny
    @dmitry-lz1ny Před 2 měsíci

    Эх. Elixir как по мне более приятный, но у нас скорее всего SCALA в основном, т.к много джавистов. А хаскел вообще мало кто освоит. : )

    • @DariaShatova
      @DariaShatova  Před 2 měsíci

      интересно, у нас про Elixir мало кто говорит)

    • @dmitry-lz1ny
      @dmitry-lz1ny Před 2 měsíci

      @@DariaShatova про функциональные языке в целом не так часто говорят, т.к там своя ниша для математиков.

  • @scherbakovss2012
    @scherbakovss2012 Před 2 měsíci

    Получается функциональное программирование это тоже самое что и процедурное?

    • @DariaShatova
      @DariaShatova  Před 2 měsíci +2

      В процедурном подходе нужно тщательно описать каждое действие, типа почистить свёклу, сняв с неё 1,5 миллиметра поверхности, нарезать её на тонкие пласты и каждый пласт нарезать на кусочки 3*20 мм. Это подходит для простых задач. А в ФП мы пользуемся функцией, которая называется подготовить овощи для борща, и она выдает готовый ожидаемый результат. Но да, если раскапывать, а что там в функции, то можно докопать до более примитивной парадигмы)

    • @VitaliyZlobin
      @VitaliyZlobin Před 18 dny

      ​@@DariaShatova не ответили. Разве в ФП нигде не нужно указывать, что нужно "снять 1,5 миллиметра поверхности" или "нарезать кусочки 3*20 мм". Из виде понял, что ФП это мудрёное и не особо полезное. Помимо этого ролика я знаю, что ФП хорошо параллелится, т.к. нет конкуренции за ресурс и нет блокировок. Но именно в ролике про это ничего не сказано.