Rozdiel medzi funkčným programovaním a imperatívnym programovaním

Obsah:

Rozdiel medzi funkčným programovaním a imperatívnym programovaním
Rozdiel medzi funkčným programovaním a imperatívnym programovaním

Video: Rozdiel medzi funkčným programovaním a imperatívnym programovaním

Video: Rozdiel medzi funkčným programovaním a imperatívnym programovaním
Video: 🚿 Роняю и мою Рации Lira P-312, P-512H. Обзор CP-115, CP-215H, CP-515 | РАЦИИ 📻 2024, November
Anonim

Kľúčový rozdiel – funkčné programovanie a imperatívne programovanie

Kľúčový rozdiel medzi funkčným programovaním a imperatívnym programovaním je v tom, že funkčné programovanie považuje výpočty za matematické funkcie a vyhýba sa zmene stavu a meniteľným údajom, zatiaľ čo imperatívne programovanie používa príkazy, ktoré menia stav programov.

Paradigma programovania poskytuje štýl budovania štruktúry a prvkov počítačového programu. Programovacie paradigmy pomáhajú klasifikovať programovacie jazyky na základe ich vlastností. Programovací jazyk môže ovplyvniť viac paradigiem. V objektovo orientovanej paradigme je program štruktúrovaný pomocou objektov a objekty odovzdávajú správy pomocou metód. Logické programovanie môže vyjadrovať výpočty výlučne z hľadiska matematickej logiky. Ďalšie dve programovacie paradigmy sú funkcionálne programovanie a imperatívne programovanie. Funkcionálne programovanie umožňuje vyjadriť výpočty ako vyhodnotenie matematických funkcií. Imperatívne programovanie poskytuje príkazy, ktoré explicitne menia stav pamäte. Tento článok pojednáva o rozdieloch medzi funkčným programovaním a imperatívnym programovaním.

Čo je funkčné programovanie?

Funkčné programovanie je založené na matematike. Kľúčovým princípom funkčného programovania je, že všetky výpočty sa považujú za kombináciu samostatných matematických funkcií. Matematická funkcia mapuje vstupy na výstupy. Predpokladajme, že existuje funkcia s názvom f(x)=xx. Hodnota x 1 sa mapuje na výstup 1. Hodnota x 2 sa mapuje na výstup 4. Hodnota x 3 je namapovaná na výstup 9 a tak ďalej.

Rozdiel medzi funkčným programovaním a imperatívnym programovaním
Rozdiel medzi funkčným programovaním a imperatívnym programovaním

Obrázok 01: Príklad funkcionálneho programovacieho jazyka – Haskell

Vo funkčnom programovaní sa berú do úvahy vzory. Funkčné programovacie jazyky Haskell používajú nižšie uvedenú metódu na nájdenie súčtu čísel.

Funkcia súčtu má celočíselné hodnoty a výsledkom bude tiež celé číslo. Dá sa zapísať ako súčet: [int] -> int. Súčet je možné vykonať podľa nasledujúcich vzorov.

sum[n]=n, súčet jedného čísla je samotné číslo.

Ak existuje zoznam čísel, možno ho zapísať nasledovne. n predstavuje prvé číslo a ns predstavuje ostatné čísla

súčet (n, ns)=n + súčet ns.

Vyššie uvedené vzory možno použiť na nájdenie súčtu troch čísel, ktoré sú 3, 4, 5.

3 + súčet [4, 5]

3 + (4 + súčet [5])

3+ 4 + 5=12

O funkcii alebo výraze sa hovorí, že má vedľajšie účinky, ak modifikuje nejaký stav mimo svojho rozsahu alebo má pozorovateľnú interakciu s jej volajúcimi funkciami okrem vrátenej hodnoty. Funkčné programovanie minimalizuje tieto vedľajšie účinky. Zmeny stavu nezávisia od funkčných vstupov. Je to užitočné pri pochopení správania programu. Jednou nevýhodou funkcionálneho programovania je, že učenie sa funkcionálneho programovania je ťažšie v porovnaní s imperatívnym programovaním.

Čo je imperatívne programovanie?

Imperatívne programovanie je paradigma programovania, ktorá používa príkazy, ktoré menia stav programu. Zameriava sa na popis fungovania programu. Programovacie jazyky ako Java, C a C sú nevyhnutné programovacie jazyky. Poskytuje postup krok za krokom, čo robiť. Imperatívne programovacie jazyky obsahujú štruktúry ako if, else, while, pre cykly, triedy, objekty a funkcie.

Kľúčový rozdiel medzi funkčným programovaním a imperatívnym programovaním
Kľúčový rozdiel medzi funkčným programovaním a imperatívnym programovaním

Obrázok 02: Príklad imperatívneho programovacieho jazyka – Java

Súčet desiatich čísel možno v jazyku Java nájsť nasledovne. V každej iterácii sa hodnota i pripočíta k súčtu a priradí sa k premennej sumy. V každej iterácii sa hodnota súčtu neustále pridáva k predtým vypočítanej sume.

int sum=0;

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

sum=suma + i;

}

Imperatívne programovanie sa dá ľahko naučiť, pochopiť a ladiť. Je ľahké nájsť stav programu vďaka použitiu stavových premenných. Niektoré nevýhody sú, že kód môže byť zdĺhavý a môže tiež minimalizovať škálovateľnosť.

Aká je podobnosť medzi funkčným programovaním a imperatívnym programovaním?

Funkčné programovanie aj imperatívne programovanie sú programovacie paradigmy

Aký je rozdiel medzi funkčným programovaním a imperatívnym programovaním?

Funkčné verzus imperatívne programovanie

Funkčné programovanie je paradigma programovania, ktorá považuje výpočty za vyhodnotenie matematických funkcií a vyhýba sa zmene stavu a meniteľným údajom. Imperatívne programovanie je paradigma programovania, ktorá používa príkazy, ktoré menia stav programu.
Štruktúry
Funkčné programovanie obsahuje volania funkcií a funkcie vyššieho rádu. Imperatívne programovanie obsahuje if, else, while, pre cykly, funkcie, triedy a objekty.
Programovacie jazyky
Scala, Haskell a Lisp sú funkčné programovacie jazyky. C, C++, Java sú nevyhnutné programovacie jazyky.
Focus
Funkčné programovanie sa zameriava na konečný výsledok. Imperatívne programovanie sa zameriava na popis toho, ako program funguje.
Jednoduchosť
Funkčné programovanie je ťažké. Imperatívne programovanie je jednoduchšie.

Zhrnutie – Funkčné programovanie verzus imperatívne programovanie

Paradigma programovania poskytuje štýl budovania štruktúry a prvkov počítačového programu. Funkčné programovanie a imperatívne programovanie sú dve z nich. Rozdiel medzi funkčným programovaním a imperatívnym programovaním je v tom, že funkčné programovanie považuje výpočty za matematické funkcie a vyhýba sa zmene stavu a meniteľným údajom, zatiaľ čo imperatívne programovanie používa príkazy, ktoré menia stav programov.

Odporúča: