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

Съдържание:

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

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

Видео: Разлика между функционално програмиране и императивно програмиране
Видео: Основы программирования. Синтаксис и семантика 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, for цикли, класове, обекти и функции.

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

Фигура 02: Пример за императивен език за програмиране – Java

Сумирането на десет числа може да се намери в Java, както следва. При всяка итерация стойността i се добавя към сумата и се присвоява на променливата sum. Във всяка итерация стойността на сумата продължава да се добавя към предварително изчислената сума.

int сума=0;

за (int i=0; i<=10; i++) {

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

}

Императивното програмиране е лесно за научаване, разбиране и отстраняване на грешки. Лесно е да се намери състоянието на програмата поради използването на променливи на състоянието. Някои недостатъци са, че може да направи кода дълъг и може също да минимизира скалируемостта.

Каква е приликата между функционалното програмиране и императивното програмиране?

Както функционалното програмиране, така и императивното програмиране са програмни парадигми

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

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

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

Обобщение – Функционално програмиране срещу императивно програмиране

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

Препоръчано: