Рубрики
Без рубрики

Что такое функциональное программирование?

Функциональное программирование Парадигма программирования – это способ размышления о программном конструкции … Tagged with JavaScript, функциональный.

A Программирование парадигма это способ размышления о строительстве программного обеспечения, основанный на нескольких определяющих принципах. Функциональное программирование является одной из таких парадигмов, которая состоит из Чистые функции и который избегает Общее состояние , изменяемые данные и побочные эффекты Анкет Функциональное программирование – это декларатив Вместо того, чтобы императив, и в отличие от объектно -ориентированного программирования, состояние применения течет через чистые функции.

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

Чистые функции

Первая фундаментальная концепция для изучения – это чистые функции. Чистые функции необходимы для различных целей, включая надежную параллелизм, приложения React и Redux, а также функциональное программирование. Давайте рассмотрим, что делает функцию «чистой»:

  • Чистая функция, учитывая одинаковые входы, всегда возвращает один и тот же выход
  • Чистая функция не имеет побочных эффектов (подробнее об этом позже)

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

Избегайте общего состояния

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

Неизменность

В качестве напоминания, неизбежный объект – это объект, который не может быть изменен после его создания. Если вы хотите изменить неизменную объект, следующая лучшая вещь – создать новый объект с новым значением. Необвишаемость является центральной концепцией функционального программирования, потому что без него история состояния теряется, а ошибки могут проникнуть в ваше программное обеспечение.

Побочные эффекты

Побочным эффектом является любое изменение состояния применения, которое наблюдается за пределами вызываемой функции, отличной от ее возврата. Примеры побочных эффектов:

  • Изменение любой внешней переменной или свойства объекта
  • Регистрация в консоли
  • Написание в файл

Функциональное программирование позволяет избежать побочных эффектов, которые облегчают ваше программное обеспечение для расширения, рефактории, отладки, тестирования и обслуживания.

Декларатив против императива

Функциональное программирование является декларативной парадигмой, что означает, что программная логика выражается без явного описания управления потоком. В тех случаях, когда императивный код обычно опирается на утверждения, части кода, которые выполняют некоторые действия, декларативный код использует выражения, код, который оценивается с некоторым значением посредством некоторой комбинации вызовов функций, значений и операторов. Другими словами, декларативные программы абстрагируют процесс управления потоком и сосредоточены на потоке данных: Что делать; Как абстрагируется.

Вывод

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

Для дальнейшего чтения по этой теме, проверьте некоторые из этих источников:

Оригинал: “https://dev.to/christinamcmahon/what-is-functional-programming-5773”