ключевое отличие между функциональным программированием и императивным программированием является то, что функциональное программирование рассматривает вычисления как математические функции и избегает изменения состояния и изменчивых данных, в то время как в императивном программировании используются операторы, которые изменяют состояние программ.
Парадигма программирования обеспечивает стиль построения структуры и элементов компьютерной программы. Парадигмы программирования помогают классифицировать языки программирования на основе их особенностей. Язык программирования может влиять на большее количество парадигм. В объектно-ориентированной парадигме программа структурирована с использованием объектов, а объекты передают сообщения с использованием методов. Логическое программирование может выражать вычисления исключительно в терминах математической логики. Еще две парадигмы программирования - функциональное программирование и императивное программирование. Функциональное программирование позволяет выражать вычисления как оценку математических функций. Императивное программирование предоставляет операторы, которые явно изменяют состояние памяти. В этой статье обсуждается разница между функциональным программированием и императивным программированием.
1. Обзор и основные отличия
2. Что такое функциональное программирование
3. Что такое императивное программирование
4. Сходства между функциональным программированием и императивным программированием
5. Сравнение бок о бок - функциональное программирование и императивное программирование в табличной форме
6. Резюме
Функциональное программирование основано на математике. Ключевой принцип функционального программирования заключается в том, что все вычисления рассматриваются как комбинация отдельных математических функций. Математическая функция отображает входы на выходы. Предположим, что есть функция с именем f (x) = x * x. Значение x 1 отображается на выход 1. Значение x 2 отображается на выход 4. Значение x 3 отображается на выход 9 и т. Д..
Рисунок 01: Пример функционального языка программирования - Haskell
В функциональном программировании рассматриваются шаблоны. Функциональные языки программирования Haskell, использует приведенный ниже метод для нахождения суммы чисел.
Функция суммы имеет целочисленные значения, и результатом также будет целое число. Его можно записать в виде суммы: [int] -> int. Суммирование можно сделать, следуя приведенным ниже схемам.
сумма [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 добавляется к сумме и присваивается переменной sum. На каждой итерации значение суммы продолжает прибавляться к ранее рассчитанной сумме..
int sum = 0;
для (int i = 0; i< =10; i++)
сумма = сумма + я;
Императивное программирование легко изучать, понимать и отлаживать. Найти состояние программы легко благодаря использованию переменных состояния. Некоторые недостатки заключаются в том, что он может сделать код длинным, а также минимизировать масштабируемость..
Функциональное и императивное программирование | |
Функциональное программирование - это парадигма программирования, которая рассматривает вычисления как оценку математических функций и избегает изменения состояния и изменчивых данных.. | Императивное программирование - это парадигма программирования, использующая операторы, которые изменяют состояние программы. |
сооружения | |
Функциональное программирование содержит вызовы функций и функции высшего порядка.. | Императивное программирование содержит if, else, while, для циклов, функций, классов и объектов. |
Языки программирования | |
Scala, Haskell и Lisp являются функциональными языками программирования. | C, C ++, Java являются императивными языками программирования. |
фокус | |
Функциональное программирование ориентировано на конечный результат. | Императивное программирование фокусируется на описании того, как работает программа. |
Простота | |
Функциональное программирование сложно. | Императивное программирование проще. |
Парадигма программирования обеспечивает стиль построения структуры и элементов компьютерной программы. Функциональное программирование и императивное программирование - два из них. Различие между функциональным программированием и императивным программированием заключается в том, что функциональное программирование рассматривает вычисления как математические функции и избегает изменения состояния и изменяемых данных, в то время как в императивном программировании используются операторы, которые изменяют состояние программы..
1. «Императивное программирование». Википедия, Фонд Викимедиа, 28 марта 2018 г. Доступно здесь
2. «Функциональное программирование». Википедия, Фонд Викимедиа, 28 марта 2018 г. Доступно здесь
3.Computerphile. YouTube, YouTube, 30 августа 2013 г. Доступно здесь
1.'Haskell Logo'By Haskell1965 - собственная работа (CC BY-SA 3.0) с помощью Commons Wikimedia
2.'14485179234 'с помощью скриншотов Linux (CC BY 2.0) через Flickr