Разница между функциональным программированием и императивным программированием

Оглавление:

Разница между функциональным программированием и императивным программированием
Разница между функциональным программированием и императивным программированием

Видео: Разница между функциональным программированием и императивным программированием

Видео: Разница между функциональным программированием и императивным программированием
Видео: Чем различаются императивное и декларативное программирование? Душкин объяснит 2024, Ноябрь
Anonim

Ключевая разница - функциональное программирование против императивного программирования

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

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

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

Функциональное программирование основано на математике. Ключевой принцип функционального программирования заключается в том, что все вычисления рассматриваются как комбинация отдельных математических функций. Математическая функция отображает входы в выходы. Предположим, что существует функция с именем f(x)=xx. Значение x 1 сопоставляется с выходом 1. Значение x 2 сопоставляется с выходом 4. Значение x 3 сопоставляется с выходом 9 и т. д.

Разница между функциональным программированием и императивным программированием
Разница между функциональным программированием и императивным программированием

Рисунок 01: Пример функционального языка программирования – Haskell

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

Функция суммы имеет целочисленные значения, и результатом также будет целое число. Его можно записать в виде суммы: [int] -> int. Суммирование можно выполнить, следуя приведенным ниже шаблонам.

sum[n]=n, сумма одного числа и есть само число.

Если есть список чисел, то его можно записать следующим образом. n представляет первое число, а ns представляет остальные числа

сумма (n, ns)=n + сумма ns.

Вышеуказанные шаблоны можно применять для нахождения суммы трех чисел: 3, 4, 5.

3 + сумма [4, 5]

3 + (4 + сумма [5])

3+ 4 + 5=12

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

Что такое императивное программирование?

Императивное программирование - это парадигма программирования, в которой используются операторы, изменяющие состояние программы. Основное внимание уделяется описанию того, как работает программа. Такие языки программирования, как Java, C и C, являются императивными языками программирования. Он обеспечивает пошаговую процедуру того, что делать. Императивные языки программирования содержат такие структуры, как if, else, while, для циклов, классов, объектов и функций.

Ключевая разница между функциональным программированием и императивным программированием
Ключевая разница между функциональным программированием и императивным программированием

Рисунок 02: Пример императивного языка программирования – Java

Сумму десяти чисел можно найти в Java следующим образом. На каждой итерации значение i добавляется к сумме и присваивается переменной суммы. На каждой итерации значение суммы продолжает добавляться к ранее рассчитанной сумме.

целая сумма=0;

for (int i=0; i<=10; i++) {

сумма=сумма + i;

}

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

В чем сходство между функциональным программированием и императивным программированием?

И функциональное программирование, и императивное программирование являются парадигмами программирования

В чем разница между функциональным программированием и императивным программированием?

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

Функциональное программирование - это парадигма программирования, которая рассматривает вычисления как оценку математических функций и избегает изменения состояния и изменяемых данных. Императивное программирование - это парадигма программирования, в которой используются операторы, изменяющие состояние программы.
Структуры
Функциональное программирование содержит вызовы функций и функции высшего порядка. Императивное программирование содержит циклы if, else, while, for, функции, классы и объекты.
Языки программирования
Scala, Haskell и Lisp - языки функционального программирования. C, C++, Java являются императивными языками программирования.
Фокус
Функциональное программирование фокусируется на конечном результате. Императивное программирование фокусируется на описании того, как программа работает.
Простота
Функциональное программирование - это сложно. Императивное программирование проще.

Резюме – Функциональное программирование против императивного программирования

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

Рекомендуемые: