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

Kľúčový rozdiel - funkčný Programovanie vs imperatívne programovanie
 

kľúčový rozdiel medzi funkčným programovaním a imperatívnym programovaním je to, že funkčné programovanie považuje výpočty za matematické funkcie a vyhýba sa zmenám stavu a premenlivým údajom, zatiaľ čo imperatívne programovanie používa výroky, ktoré menia stav programov.

Programovacie 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 funkcií. Programovací jazyk by mohol ovplyvniť viac paradigiem. V paradigme zameranom na objekty je program štruktúrovaný pomocou objektov a objekty odovzdávajú správy pomocou metód. Logické programovanie môže vyjadriť výpočet výlučne z hľadiska matematickej logiky. Ďalšími dvoma programovacími paradigmami sú funkčné programovanie a imperatívne programovanie. Funkčné programovanie umožňuje vyjadriť výpočty ako vyhodnotenie matematických funkcií. Imperatívne programovanie poskytuje príkazy, ktoré výslovne menia stav pamäte. Tento článok sa zaoberá rozdielom medzi funkčným a imperatívnym programovaním.

OBSAH

1. Prehľad a kľúčový rozdiel
2. Čo je funkčné programovanie
3. Čo je nevyhnutné programovanie
4. Podobnosti medzi funkčným programovaním a imperatívnym programovaním
5. Porovnanie bok po boku - 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 to, ž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 2 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

Vo funkčnom programovaní sa berú do úvahy vzory. Funkčné programovacie jazyky Haskell používa na nájdenie súčtu čísel nasledujúcu metódu.

Súčet má celočíselné hodnoty a výsledkom bude aj celé číslo. Môže byť napísaný ako súčet: [int] -> int. Sumáciu je možné vykonať podľa nasledujúcich vzorcov.

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

Ak existuje zoznam čísel, možno ho napísať nasledujúcim spôsobom. N predstavuje prvé číslo a ns predstavuje ďalšie čísla

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

Vyššie uvedené vzorce 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 niektorý stav mimo svojho rozsahu alebo ak má okrem návratovej hodnoty viditeľnú interakciu s volajúcimi funkciami. Funkčné programovanie minimalizuje tieto vedľajšie účinky. Zmeny stavu nezávisia od vstupov funkcií. Je to užitočné pri porozumení chovania programu. Jednou nevýhodou funkčného programovania je to, že učenie sa funkčného programovania je v porovnaní s imperatívnym programovaním ťažšie.

Čo je nevyhnutné programovanie?

Imperatívne programovanie je programovacie paradigma, 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 postupný postup pri postupe. Imperatívne programovacie jazyky obsahujú štruktúry ako if, else, while, pre slučky, triedy, objekty a funkcie.

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

Sčítanie desiatich čísel možno nájsť v Java nasledovne. V každej iterácii sa k súčtu pripočíta hodnota i a priradí sa k súčtovej premennej. V každej iterácii hodnota súčtu pokračuje v pripočítaní k predtým vypočítanej sume.

int súčet = 0;

pre (int i = 0; i< =10; i++)

sum = suma + i;

Rozsiahle programovanie je ľahké sa naučiť, porozumieť a ladiť. Je ľahké nájsť stav programu kvôli použitiu 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ú programovacími paradigmami.

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

Funkčné vs. imperatívne programovanie

Funkčné programovanie je programovacie paradigma, ktoré považuje výpočet za hodnotenie matematických funkcií a vyhýba sa zmene stavu a premenlivých údajov.. Imperative Programming je programovacie paradigma, ktoré používa príkazy, ktoré menia stav programu.
 štruktúry
Funkčné programovanie obsahuje funkcie volania a funkcie vyššieho poriadku. Imperative Programming obsahuje, ak, inde, 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.
 ohnisko
Funkčné programovanie sa zameriava na konečný výsledok. Imperatívne programovanie sa zameriava na popis fungovania programu.
jednoduchosť
Funkčné programovanie je ťažké. Nútené programovanie je jednoduchšie.

Zhrnutie - funkčné Programovanie vs imperatívne programovanie

Programovacie paradigma 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 spočíva v tom, že funkčné programovanie považuje výpočty za matematické funkcie a vyhýba sa zmenám stavu a premenlivým údajom, zatiaľ čo imperatívne programovanie používa výroky, ktoré menia stav programov.

referencie:

1. „Nútené programovanie“. Wikipedia, Wikimedia Foundation, 28. marca 2018. K dispozícii tu  
2. „Funkčné programovanie“. Wikipedia, Wikimedia Foundation, 28. marca 2018. K dispozícii tu  
3.Computerphile. YouTube, YouTube, 30. augusta 2013. K dispozícii tu 

S láskavým dovolením:

1.'Haskell Logo'By Haskell1965 - vlastné dielo, (CC BY-SA 3.0) cez Commons Wikimedia 
2.'14485179234'by Linux Screenshots (CC BY 2.0) cez Flickr