Ключова разлика - Функционално програмиране срещу императивно програмиране
Ключовата разлика между функционалното програмиране и императивното програмиране е, че функционалното програмиране разглежда изчисленията като математически функции и избягва променящите се състояния и променливи данни, докато императивното програмиране използва изразите, които променят състоянието на програмите.
Парадигмата за програмиране предоставя стил на изграждане на структурата и елементите на компютърна програма. Парадигмите за програмиране помагат да се класифицират езиците за програмиране въз основа на техните характеристики. Езикът за програмиране може да повлияе на повече парадигми. В обектно-ориентираната парадигма програмата е структурирана с помощта на обекти и обектите предават съобщения с помощта на методи. Логическото програмиране може да изрази изчисленията изключително от гледна точка на математическа логика. Други две програмни парадигми са функционалното програмиране и императивното програмиране. Функционалното програмиране позволява изразяване на изчисления като оценка на математически функции. Императивното програмиране предоставя изявления, които изрично променят състоянието на паметта. Тази статия разглежда разликата между функционалното програмиране и императивното програмиране.
СЪДЪРЖАНИЕ
1. Общ преглед и ключова разлика
2. Какво е функционално програмиране
3. Какво е императивно програмиране
4. Прилики между функционално програмиране и императивно програмиране
5. Равно до сравнение - Функционално програмиране срещу императивно програмиране в таблична форма
6. Резюме
Какво е функционално програмиране?
Функционалното програмиране се основава на математиката. Ключовият принцип зад функционалното програмиране е, че всички изчисления се разглеждат като комбинация от отделни математически функции. Математическа функция картографира входовете към изходите. Да приемем, че има функция, наречена f (x) = x * x. Стойността х 1 се преобразува в изход 1. Стойността х 2 се преобразува в изход 4. Стойността х 3 се преобразува в изход 9 и т.н.
Фигура 01: Пример за език за функционално програмиране - Haskell
При функционалното програмиране се разглеждат моделите. Функционалните езици за програмиране Haskell използва метода по-долу, за да намери сумирането на числата.
Функцията sum има цели числа и резултатът също ще бъде цяло число. Може да се запише като сума: [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 се добавя към сумата и се присвоява на променливата сума. Във всяка итерация стойността на сумата продължава да се добавя към предварително изчислената сума.
int сума = 0;
за (int i = 0; i <= 10; i ++) {
сума = сума + i;
}
Императивното програмиране е лесно за научаване, разбиране и отстраняване на грешки. Лесно е да се намери състоянието на програмата поради използването на променливи на състоянието. Някои недостатъци са, че може да направи кода дълъг и да намали мащабируемостта.
Каква е приликата между функционалното програмиране и императивното програмиране?
Както функционалното програмиране, така и императивното програмиране са програмни парадигми
Каква е разликата между функционалното програмиране и императивното програмиране?
Различна статия Средна преди таблица
Функционално срещу императивно програмиране |
|
Функционалното програмиране е програмна парадигма, която разглежда изчисленията като оценка на математическите функции и избягва променящите се състояния и променливи данни. | Императивното програмиране е програмна парадигма, която използва изрази, които променят състоянието на програмата. |
Структури | |
Функционалното програмиране съдържа извиквания на функции и функции от по-висок ред. | Императивното програмиране съдържа if, else, while, за цикли, функции, класове и обекти. |
Програмни езици | |
Scala, Haskell и Lisp са функционални езици за програмиране. | C, C ++, Java са императивни езици за програмиране. |
Фокус | |
Функционалното програмиране се фокусира върху крайния резултат. | Императивното програмиране се фокусира върху описването на работата на една програма. |
Простота | |
Функционалното програмиране е трудно. | Императивното програмиране е по-лесно. |
Резюме - Функционално програмиране срещу императивно програмиране
Парадигмата за програмиране предоставя стил на изграждане на структурата и елементите на компютърна програма. Функционалното програмиране и императивното програмиране са две от тях. Разликата между функционалното програмиране и императивното програмиране е, че функционалното програмиране разглежда изчисленията като математически функции и избягва променящите се състояния и променливи данни, докато императивното програмиране използва изразите, които променят състоянието на програмите.