Razlika između funkcionalnog programiranja i imperativnog programiranja

Sadržaj:

Razlika između funkcionalnog programiranja i imperativnog programiranja
Razlika između funkcionalnog programiranja i imperativnog programiranja

Video: Razlika između funkcionalnog programiranja i imperativnog programiranja

Video: Razlika između funkcionalnog programiranja i imperativnog programiranja
Video: Šta je SEO, kako biti prvi na Googleu i zaraditi? | SEO KURS 1/33 2024, Srpanj
Anonim

Ključna razlika – funkcionalno programiranje naspram imperativnog programiranja

Ključna razlika između funkcionalnog programiranja i imperativnog programiranja je u tome što funkcionalno programiranje razmatra izračune kao matematičke funkcije i izbjegava promjenu stanja i promjenjive podatke, dok imperativno programiranje koristi izjave koje mijenjaju stanje programa.

Paradigma programiranja osigurava stil izgradnje strukture i elemenata računalnog programa. Paradigme programiranja pomažu u klasifikaciji programskih jezika na temelju njihovih značajki. Programski jezik može utjecati na više paradigmi. U objektno orijentiranoj paradigmi, program je strukturiran korištenjem objekata, a objekti prosljeđuju poruke korištenjem metoda. Logičko programiranje može izraziti računanje isključivo u terminima matematičke logike. Druge dvije paradigme programiranja su funkcionalno programiranje i imperativno programiranje. Funkcionalno programiranje omogućuje izražavanje izračuna kao vrednovanje matematičkih funkcija. Imperativno programiranje daje izjave koje eksplicitno mijenjaju stanje memorije. Ovaj članak govori o razlici između funkcionalnog i imperativnog programiranja.

Što je funkcionalno programiranje?

Funkcionalno programiranje temelji se na matematici. Ključno načelo u pozadini funkcionalnog programiranja je da se svi proračuni smatraju kombinacijom zasebnih matematičkih funkcija. Matematička funkcija preslikava ulaze u izlaze. Pretpostavimo da postoji funkcija koja se zove f(x)=xx. Vrijednost x 1 preslikava se na izlaz 1. Vrijednost x 2 preslikava se na izlaz 4. Vrijednost x 3 preslikava se na izlaz 9 i tako dalje.

Razlika između funkcionalnog i imperativnog programiranja
Razlika između funkcionalnog i imperativnog programiranja

Slika 01: Primjer funkcionalnog programskog jezika – Haskell

U funkcionalnom programiranju uzimaju se u obzir uzorci. Funkcionalni programski jezici Haskell koriste donju metodu za pronalaženje zbroja brojeva.

Funkcija zbroja ima cjelobrojne vrijednosti, a rezultat će također biti cijeli broj. Može se napisati kao zbroj: [int] -> int. Zbrajanje se može izvršiti slijedeći uzorke u nastavku.

zbroj[n]=n, zbroj jednog broja je sam broj.

Ako postoji popis brojeva, može se napisati na sljedeći način. N predstavlja prvi broj, a ns predstavlja ostale brojeve

zbroj (n, ns)=n + zbroj ns.

Gore navedeni uzorci mogu se primijeniti da se pronađe zbroj triju brojeva koji su 3, 4, 5.

3 + zbroj [4, 5]

3 + (4 + zbroj [5])

3+ 4 + 5=12

Za funkciju ili izraz se kaže da ima nuspojave ako mijenja neko stanje izvan svog opsega ili ima vidljivu interakciju sa svojim pozivnim funkcijama osim povratne vrijednosti. Funkcionalno programiranje minimizira ove nuspojave. Promjene stanja ne ovise o funkcijskim ulazima. Korisno je za razumijevanje ponašanja programa. Jedan nedostatak funkcionalnog programiranja je to što je učenje funkcionalnog programiranja teže u usporedbi s imperativnim programiranjem.

Što je imperativno programiranje?

Imperativno programiranje je paradigma programiranja koja koristi izjave koje mijenjaju stanje programa. Fokusira se na opisivanje kako program radi. Programski jezici kao što su Java, C i C su imperativni programski jezici. Omogućuje postupak korak po korak o tome što učiniti. Imperativni programski jezici sadrže strukture kao što su if, else, while, for petlje, klase, objekte i funkcije.

Ključna razlika između funkcionalnog i imperativnog programiranja
Ključna razlika između funkcionalnog i imperativnog programiranja

Slika 02: Primjer imperativnog programskog jezika – Java

Zbroj deset brojeva može se pronaći u Javi na sljedeći način. U svakoj iteraciji, vrijednost i dodaje se zbroju i dodjeljuje varijabli zbroja. U svakoj iteraciji, vrijednost zbroja nastavlja se dodavati prethodno izračunatom zbroju.

int zbroj=0;

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

zbroj=zbroj + i;

}

Imperativno programiranje lako je naučiti, razumjeti i otkloniti pogreške. Lako je pronaći stanje programa zbog korištenja varijabli stanja. Neki nedostaci su to što može učiniti kod dugim i također može smanjiti skalabilnost.

Koja je sličnost između funkcionalnog i imperativnog programiranja?

I funkcionalno programiranje i imperativno programiranje su paradigme programiranja

Koja je razlika između funkcionalnog programiranja i imperativnog programiranja?

Funkcionalno nasuprot imperativnom programiranju

Funkcionalno programiranje je paradigma programiranja koja računanje smatra procjenom matematičkih funkcija i izbjegava promjenu stanja i promjenjive podatke. Imperativno programiranje je paradigma programiranja koja koristi izjave koje mijenjaju stanje programa.
Strukture
Funkcionalno programiranje sadrži pozive funkcija i funkcije višeg reda. Imperativno programiranje sadrži if, else, while, for petlje, funkcije, klase i objekte.
Programski jezici
Scala, Haskell i Lisp su funkcionalni programski jezici. C, C++, Java obavezni su programski jezici.
Fokus
Funkcionalno programiranje fokusirano je na krajnji rezultat. Imperativno programiranje fokusirano je na opisivanje kako program radi.
Jednostavnost
Funkcionalno programiranje je teško. Imperativno programiranje je lakše.

Sažetak – Funkcionalno programiranje nasuprot imperativnom programiranju

Paradigma programiranja osigurava stil izgradnje strukture i elemenata računalnog programa. Funkcionalno programiranje i imperativno programiranje dva su od njih. Razlika između funkcionalnog i imperativnog programiranja je u tome što funkcionalno programiranje računanje smatra matematičkim funkcijama i izbjegava promjenu stanja i promjenjive podatke, dok imperativno programiranje koristi izjave koje mijenjaju stanje programa.

Preporučeni: