The ključna razlika med funkcionalnim programiranjem in nujno programiranjem je, da je funkcionalno programiranje izračuna izračune kot matematične funkcije in se izogne spreminjanju stanja in spremenljivih podatkov, medtem ko nujno programiranje uporablja izjave, ki spreminjajo stanje programov.
Programska paradigma zagotavlja slog gradnje strukture in elementov računalniškega programa. Paradigme programiranja pomagajo pri razvrščanju programskih jezikov glede na njihove značilnosti. Programski jezik lahko vpliva na več paradigem. V objektno orientirani paradigmi je program strukturiran s pomočjo predmetov in predmeti prenašajo sporočila z metodami. Logično programiranje lahko izračun izrazi izključno v smislu matematične logike. Drugi dve programski paradigmi sta funkcionalno programiranje in nujno programiranje. Funkcionalno programiranje omogoča izražanje izračunov kot ocenjevanje matematičnih funkcij. Imperativno programiranje vsebuje izjave, ki izrecno spremenijo stanje pomnilnika. Ta članek obravnava razliko med funkcionalnim programiranjem in nujnim programiranjem.
1. Pregled in ključne razlike
2. Kaj je funkcionalno programiranje
3. Kaj je nujno programiranje
4. Podobnosti funkcionalnega programiranja in imperativnega programiranja
5. Primerjalna primerjava - Funkcijsko programiranje in Imperativno programiranje v tabeli
6. Povzetek
Funkcijsko programiranje temelji na matematiki. Ključno načelo funkcionalnega programiranja je, da se vse računanje šteje za kombinacijo ločenih matematičnih funkcij. Matematična funkcija preslika vhode v izhode. Predpostavimo, da obstaja funkcija, imenovana f (x) = x * x. Vrednost x je preslikana na izhod 1. Vrednost x je preslikana na izhod 4. Vrednost x je preslikana na izhod 9 in tako naprej.
Slika 01: Primer jezika funkcionalnega programiranja - Haskell
V funkcionalnem programiranju so upoštevani vzorci. Funkcionalni programski jeziki Haskell s pomočjo spodnje metode najdejo seštevanje števil.
Funkcija vsote ima celoštevilčne vrednosti, rezultat pa bo tudi celo število. Lahko ga zapišemo kot vsoto: [int] -> int. Povzemanje lahko izvedemo z upoštevanjem spodnjih vzorcev.
vsota [n] = n, vsota enega števila je samo število.
Če obstaja seznam številk, ga lahko zapišemo na naslednji način. N predstavlja prvo številko, ns pa druga števila
vsota (n, ns) = n + vsota ns.
Zgornji vzorci lahko uporabimo za iskanje vsote treh števil, ki so 3,4,5.
3 + vsota [4,5]
3 + (4 + vsota [5])
3+ 4 + 5 = 12
Funkcija ali izraz naj bi imela stranske učinke, če spremeni neko stanje zunaj njegovega obsega ali ima poleg vrnjene vrednosti opazno interakcijo s svojimi klicnimi funkcijami. Funkcijsko programiranje zmanjšuje te neželene učinke. Spremembe stanja niso odvisne od funkcijskih vhodov. Koristno je pri razumevanju vedenja programa. Ena pomanjkljivost funkcionalnega programiranja je, da je učenje funkcionalnega programiranja težje v primerjavi z nujnim programiranjem.
Imperativno programiranje je programska paradigma, ki uporablja izjave, ki spreminjajo stanje programa. Osredotoča se na opis delovanja programa. Programski jeziki, kot so Java, C in C #, so nujno potrebni programski jeziki. Ponuja korak za korakom postopek, kaj storiti. Imperativni programski jeziki vsebujejo strukture, kot če, drugače, medtem ko za zanke, razrede, predmete in funkcije.
Slika 02: Primer imperativnega programskega jezika - Java
Vsoto desetih števil lahko najdete na Javi na naslednji način. V vsaki ponovitvi se vrednost i doda vsoto in dodeli spremenljivki vsote. V vsaki iteraciji se vrednost vsote nadaljuje z dodajanjem predhodno izračunani vsoti.
int vsota = 0;
za (int i = 0; i< =10; i++)
vsota = vsota + i;
Imperativno programiranje je enostavno za učenje, razumevanje in odpravljanje napak. Programsko stanje je enostavno najti zaradi spremenljivk stanja. Nekatere pomanjkljivosti so, da lahko kodo podaljšajo in lahko zmanjšajo tudi razširljivost.
Funkcionalno vs Imperativno programiranje | |
Funkcijsko programiranje je programska paradigma, ki računanje šteje za ocenjevanje matematičnih funkcij in se izogiba spreminjanju stanja in spremenljivih podatkov. | Imperativno programiranje je programska paradigma, ki uporablja izjave, ki spreminjajo stanje programa. |
Strukture | |
Funkcijsko programiranje vsebuje funkcijske klice in funkcije višjega reda. | Imperativno programiranje vsebuje, če, sicer, za zanke, funkcije, razrede in predmete. |
Programiranje jezikov | |
Scala, Haskell in Lisp so funkcionalni programski jeziki. | C, C ++, Java so nujni programski jeziki. |
Fokus | |
Funkcijsko programiranje se osredotoča na končni rezultat. | Imperativno programiranje se osredotoča na opis delovanja programa. |
Enostavnost | |
Funkcijsko programiranje je težko. | Imperativno programiranje je lažje. |
Programska paradigma zagotavlja slog gradnje strukture in elementov računalniškega programa. Funkcionalno in imperativno programiranje sta dva. Razlika med funkcionalnim programiranjem in imperativnim programiranjem je v tem, da funkcionalno programiranje izračunava kot matematične funkcije in se izogiba spreminjanju stanja in spremenljivih podatkov, medtem ko imperativno programiranje uporablja izjave, ki spreminjajo stanje programov.
1. "Nujno programiranje." Wikipedia, fundacija Wikimedia, 28. marec 2018. Na voljo tukaj
2. "Funkcijsko programiranje." Wikipedia, fundacija Wikimedia, 28. marec 2018. Na voljo tukaj
3.Kompjuterfil. YouTube, YouTube, 30. avgust 2013. Na voljo tukaj
1.'Haskell Logo'By Haskell1965 - Lastno delo, (CC BY-SA 3.0) prek Commons Wikimedia
2.'14485179234 's posnetki zaslona Linux (CC BY 2.0) prek Flickr