Kľúčový rozdiel - funkčné programovanie vs. imperatívne programovanie
Kľúčovým rozdielom medzi funkčným programovaním a imperatívnym programovaním je, že funkčné programovanie považuje výpočty za matematické funkcie a vyhýba sa zmene stavu a premenlivých údajov, zatiaľ čo imperatívne programovanie používa príkazy, ktoré menia stav programov.
Programovacia paradigma 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čet výlučne z hľadiska matematickej logiky. Ďalšími dvoma paradigmami programovania sú funkčné programovanie a imperatívne programovanie. Funkčné programovanie umožňuje vyjadrovať výpočty ako hodnotenie matematických funkcií. Imperatívne programovanie poskytuje príkazy, ktoré výslovne menia stav pamäte. Tento článok pojednáva o rozdieloch medzi funkčným programovaním a imperatívnym programovaním.
OBSAH
1. Prehľad a kľúčový rozdiel
2. Čo je funkčné programovanie
3. Čo je to imperatívne programovanie
4. Podobnosti medzi funkčným programovaním a imperatívnym programovaním
5. Porovnanie vedľa seba - funkčné programovanie vs. imperatívne programovanie v tabuľkovej forme
6. Zhrnutie
Č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) = x * x. Hodnota x 1 sa mapuje na výstup 1. Hodnota x sa mapuje na výstup 4. Hodnota x 3 sa mapuje na výstup 9 atď.
Obrázok 01: Príklad funkčného programovacieho jazyka - Haskell
Pri funkčnom programovaní sa berú do úvahy vzory. Funkčné programovacie jazyky Haskell používajú nasledujúcu metódu na nájdenie súčtu čísel.
Funkcia súčtu má celočíselné hodnoty a výsledkom bude tiež celé číslo. Môže byť zapísaný ako súčet: [int] -> int. Sčítanie je možné vykonať podľa nasledujúcich vzorcov.
suma [n] = n, súčet jedného čísla je číslo samotné.
Ak existuje zoznam čísel, môže byť napísaný nasledovne. N predstavuje prvé číslo a ns predstavuje ďalšie čísla
suma (n, ns) = n + suma 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 upravuje stav mimo jeho rozsahu alebo má okrem návratovej hodnoty pozorovateľnú interakciu so svojimi volajúcimi funkciami. Funkčné programovanie tieto vedľajšie účinky minimalizuje. Zmeny stavu nezávisia od vstupov funkcií. Je to užitočné pri porozumení správania programu. Jednou z nevýhod funkčného programovania je, že učenie sa funkčného programovania je ťažšie v porovnaní s imperatívnym programovaním.
Čo je to imperatívne programovanie?
Imperatívne programovanie je paradigma programovania, ktorá používa príkazy, ktoré menia stav programu. Zameriava sa na opis fungovania programu. Programovacie jazyky ako Java, C a C # sú nevyhnutné programovacie jazyky. Poskytuje postupný postup, čo treba robiť. Imperatívne programovacie jazyky obsahujú štruktúry, ako keby, else, while, pre slučky, triedy, objekty a funkcie.
Obrázok 02: Príklad imperatívneho programovacieho jazyka - Java
Sčítanie desiatich čísel nájdete v Jave nasledovne. V každej iterácii sa hodnota i pripočíta k súčtu a priradí sa k premennej súčet. V každej iterácii sa hodnota súčtu neustále zvyšuje na predtým vypočítanú sumu.
int suma = 0;
pre (int i = 0; i <= 10; i ++) {
suma = suma + i;
}
Imperatívny program sa dá ľahko naučiť, porozumieť mu a vyladiť ho. Je ľahké nájsť stav programu z dôvodu použitia stavových premenných. Niektoré nevýhody spočívajú v tom, ž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ú paradigmy programovania
Aký je rozdiel medzi funkčným programovaním a imperatívnym programovaním?
Rozdielny článok v strede pred tabuľkou
Funkčné vs 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 premenlivých údajov. | 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 slučky, funkcie, triedy a objekty. |
Programovacie jazyky | |
Scala, Haskell a Lisp sú funkčné programovacie jazyky. | C, C ++, Java sú nevyhnutné programovacie jazyky. |
Zameranie | |
Funkčné programovanie sa zameriava na konečný výsledok. | Imperatívne programovanie sa zameriava na opis fungovania programu. |
Jednoduchosť | |
Funkčné programovanie je ťažké. | Imperatívne programovanie je jednoduchšie. |
Zhrnutie - funkčné programovanie vs. imperatívne programovanie
Programovacia paradigma poskytuje štýl budovania štruktúry a prvkov počítačového programu. Funkčné programovanie a imperatívne programovanie sú dva 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 premenlivých údajov, zatiaľ čo imperatívne programovanie používa príkazy, ktoré menia stav programov.