Peamine erinevus - funktsionaalne programmeerimine vs kohustuslik programmeerimine
Peamine erinevus funktsionaalse programmeerimise ja imperatiivse programmeerimise vahel on see, et funktsionaalne programmeerimine peab arvutusi matemaatilisteks funktsioonideks ja väldib oleku ja muutuvate andmete muutumist, samas kui imperatiivne programmeerimine kasutab programme olekut muutvaid avaldusi.
Programmeerimisparadigma pakub arvutiprogrammi struktuuri ja elementide ülesehitamise stiili. Programmeerimisparadigmad aitavad programmeerimiskeeli nende tunnuste järgi klassifitseerida. Programmeerimiskeel võib mõjutada rohkem paradigmasid. Objektorienteeritud paradigmas on programm üles ehitatud objektide abil ja objektid edastavad sõnumeid meetodite abil. Loogika programmeerimine võib arvutust väljendada ainult matemaatilise loogika mõttes. Veel kaks programmeerimisparadigmat on funktsionaalne programmeerimine ja imperatiivne programmeerimine. Funktsionaalne programmeerimine võimaldab väljendada arvutusi matemaatiliste funktsioonide hindamisena. Imperatiivne programmeerimine annab avaldusi, mis selgesõnaliselt muudavad mälu olekut. Selles artiklis käsitletakse funktsionaalse programmeerimise ja imperatiivse programmeerimise erinevust.
SISU
1. Ülevaade ja peamine erinevus
2. Mis on funktsionaalne programmeerimine
3. Mis on kohustuslik programmeerimine
4. Funktsionaalse programmeerimise ja imperatiivse programmeerimise sarnasused
5. Kõrvuti võrdlus - funktsionaalne programmeerimine vs kohustuslik programmeerimine tabelina
6. Kokkuvõte
Mis on funktsionaalne programmeerimine?
Funktsionaalne programmeerimine põhineb matemaatikal. Funktsionaalse programmeerimise peamine põhimõte on see, et kogu arvutust peetakse eraldi matemaatiliste funktsioonide kombinatsiooniks. Matemaatiline funktsioon kaardistab sisendid väljunditesse. Oletame, et on olemas funktsioon nimega f (x) = x * x. X väärtus 1 kaardistatakse väljundiga 1. x väärtus 2 kaardistatakse väljundiga 4. x väärtus 3 kaardistatakse väljundiga 9 ja nii edasi.
Joonis 01: Funktsionaalse programmeerimiskeele näide - Haskell
Funktsionaalses programmeerimises võetakse arvesse mustreid. Funktsionaalsed programmeerimiskeeled Haskell kasutab numbrite liitmise leidmiseks allpool toodud meetodit.
Funktsioonil Sum on täisarvu väärtused ja tulemus on ka täisarv. Selle võib kirjutada summana: [int] -> int. Kokkuvõtte saab teha järgides alltoodud mustreid.
summa [n] = n, ühe numbri summa on number ise.
Kui on olemas nimekiri numbritest, saab selle kirjutada järgmiselt. N tähistab esimest ja ns teisi numbreid
summa (n, ns) = n + summa ns.
Ülaltoodud mustreid saab kasutada kolme numbri 3,4,5 liitmise leidmiseks.
3 + summa [4,5]
3 + (4 + summa [5])
3+ 4 + 5 = 12
Funktsioonil või avaldisel on kõrvalmõjusid, kui see muudab mõnda olekut väljaspool oma ulatust või kui sellel on lisaks tagastatavale väärtusele jälgitav interaktsioon oma kutsuvate funktsioonidega. Funktsionaalne programmeerimine minimeerib selle kõrvaltoime. Olekumuutused ei sõltu funktsiooni sisenditest. See on kasulik programmi käitumise mõistmisel. Funktsionaalse programmeerimise üks puudus on see, et funktsionaalse programmeerimise õppimine on imperatiivse programmeerimisega võrreldes raskem.
Mis on kohustuslik programmeerimine?
Imperatiivne programmeerimine on programmeerimisparadigma, mis kasutab programmi olekut muutvaid väiteid. See keskendub programmi toimimise kirjeldamisele. Programmeerimiskeeled nagu Java, C ja C # on kohustuslikud programmeerimiskeeled. See näeb ette samm-sammult toimingu. Imperatiivsed programmeerimiskeeled sisaldavad tsüklite, klasside, objektide ja funktsioonide struktuure nagu if, else.
Joonis 02: imperatiivse programmeerimiskeele näide - Java
Kümne numbri liitmise leiate Java-st järgmiselt. Igas iteratsioonis liidetakse summale i väärtus ja määratakse summa muutujale. Igas iteratsioonis lisandub summa väärtus varem arvutatud summale.
int summa = 0;
jaoks (int i = 0; i <= 10; i ++) {
summa = summa + i;
}
Kohustuslikku programmeerimist on lihtne õppida, mõista ja siluda. Olekumuutujate kasutamise tõttu on programmi olekut lihtne leida. Mõned puudused on see, et see võib pikendada koodi ja minimeerida ka mastaapsust.
Mis on funktsionaalse programmeerimise ja imperatiivse programmeerimise sarnasus?
Nii funktsionaalne programmeerimine kui imperatiivne programmeerimine on programmeerimisparadigmad
Mis vahe on funktsionaalse programmeerimise ja kohustusliku programmeerimise vahel?
Erinev artikkel keskel enne tabelit
Funktsionaalne vs kohustuslik programmeerimine |
|
Funktsionaalne programmeerimine on programmeerimisparadigma, mis peab arvutamist matemaatiliste funktsioonide hindamiseks ja väldib oleku ja muutuvate andmete muutumist. | Imperatiivne programmeerimine on programmeerimisparadigma, mis kasutab avaldusi, mis muudavad programmi olekut. |
Konstruktsioonid | |
Funktsionaalne programmeerimine sisaldab funktsioonikõnesid ja kõrgemat järku funktsioone. | Kohustuslik programmeerimine sisaldab tsüklite, funktsioonide, klasside ja objektide jaoks if, else, while. |
Programmeerimiskeeled | |
Scala, Haskell ja Lisp on funktsionaalsed programmeerimiskeeled. | C, C ++, Java on kohustuslikud programmeerimiskeeled. |
Keskendu | |
Funktsionaalne programmeerimine keskendub lõpptulemusele. | Kohustuslik programmeerimine keskendub programmi toimimise kirjeldamisele. |
Lihtsus | |
Funktsionaalne programmeerimine on raske. | Kohustuslik programmeerimine on lihtsam. |
Kokkuvõte - funktsionaalne programmeerimine vs kohustuslik programmeerimine
Programmeerimisparadigma pakub arvutiprogrammi struktuuri ja elementide ülesehitamise stiili. Funktsionaalne programmeerimine ja kohustuslik programmeerimine on kaks neist. Funktsionaalse programmeerimise ja imperatiivse programmeerimise erinevus seisneb selles, et funktsionaalne programmeerimine peab arvutusi matemaatilisteks funktsioonideks ja väldib oleku ja muutuvate andmete muutumist, samal ajal kui imperatiivne programmeerimine kasutab programme, mis muudavad programmide olekut.