Ključna razlika - funkcionalno programiranje vs imperativno programiranje
Ključna razlika između funkcionalnog programiranja i imperativnog programiranja je u tome što funkcionalno programiranje računa proračune kao matematičke funkcije i izbjegava promjenu stanja i promjenjivih podataka, dok imperativno programiranje koristi izjave koje mijenjaju stanje programa.
Programska paradigma pruža stil izgradnje strukture i elemenata računalnog programa. Programske paradigme pomažu klasificirati programske jezike na temelju njihovih značajki. Programski jezik mogao bi utjecati na više paradigmi. U objektno orijentiranoj paradigmi program je strukturiran pomoću objekata, a objekti prenose poruke pomoću metoda. Logičko programiranje može računanje izraziti isključivo u terminima matematičke logike. Još su dvije programske paradigme funkcionalno programiranje i imperativno programiranje. Funkcionalno programiranje omogućuje izračun izračuna kao ocjenu matematičkih funkcija. Imperativno programiranje pruža izjave koje eksplicitno mijenjaju stanje memorije. Ovaj članak govori o razlici između funkcionalnog programiranja i imperativnog programiranja.
SADRŽAJ
1. Pregled i ključna razlika
2. Što je funkcionalno programiranje
3. Što je imperativno programiranje
4. Sličnosti između funkcionalnog programiranja i imperativnog programiranja
5. Usporedna usporedba - Funkcionalno programiranje nasuprot imperativnom programiranju u tabličnom obliku
6. Sažetak
Što je funkcionalno programiranje?
Funkcionalno programiranje temelji se na matematici. Ključno načelo funkcionalnog programiranja jest da se svi proračuni smatraju kombinacijom zasebnih matematičkih funkcija. Matematička funkcija preslikava ulaze u izlaze. Pretpostavimo da postoji funkcija koja se naziva f (x) = x * x. X vrijednost 1 preslikava se na izlaz 1. x vrijednost 2 preslikava se na izlaz 4. x vrijednost 3 preslikava se na izlaz 9 i tako dalje.
Slika 01: Primjer funkcionalnog programskog jezika - Haskell
U funkcionalnom programiranju uzimaju se u obzir obrasci. Funkcionalni programski jezici Haskell koristi donju metodu za pronalaženje zbroja brojeva.
Funkcija zbroja ima cjelobrojne vrijednosti, a rezultat će također biti cijeli broj. Može se zapisati kao zbroj: [int] -> int. Zbrajanje se može izvršiti slijedeći donje obrasce.
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 obrasci mogu se primijeniti za pronalaženje zbroja tri broja koji su 3,4,5.
3 + zbroj [4,5]
3 + (4 + zbroj [5])
3+ 4 + 5 = 12
Kaže se da funkcija ili izraz ima nuspojave ako modificira neko stanje izvan svog opsega ili ako uz povratnu vrijednost ima vidljivu interakciju sa svojim funkcijama pozivanja. Funkcionalno programiranje smanjuje ove nuspojave. Promjene stanja ne ovise o ulazima funkcije. Korisno je pri razumijevanju ponašanja programa. Jedan je nedostatak funkcionalnog programiranja taj što je učenje funkcionalnog programiranja teže u odnosu na imperativno programiranje.
Što je imperativno programiranje?
Imperativno programiranje je programska paradigma koja koristi izjave koje mijenjaju stanje programa. Fokusira se na opis rada programa. Programski jezici kao što su Java, C i C # imperativni su programski jezici. Pruža korak po korak postupak o tome što učiniti. Imperativni programski jezici sadrže strukture poput if, else, while, za petlje, klase, objekte i funkcije.
Slika 02: Primjer imperativnog programskog jezika - Java
Zbroj deset brojeva može se naći na Javi na sljedeći način. U svakoj se iteraciji vrijednost i dodaje zbroju i dodjeljuje varijabli zbroja. U svakoj se iteraciji vrijednost zbroja nastavlja 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 programsko stanje zbog korištenja varijabli stanja. Neki su nedostaci što kod može učiniti dugotrajnim, a može smanjiti i skalabilnost.
U čemu je sličnost između funkcionalnog programiranja i imperativnog programiranja?
Funkcionalno programiranje i imperativno programiranje su programske paradigme
Koja je razlika između funkcionalnog programiranja i imperativnog programiranja?
Diff Article Sredina prije tablice
Funkcionalno vs imperativno programiranje |
|
Funkcionalno programiranje je programska paradigma koja računanje smatra vrednovanjem matematičkih funkcija i izbjegava promjenu stanja i promjenjivih podataka. | Imperativno programiranje je programska paradigma 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 za petlje, funkcije, klase i objekte. |
Programski jezici | |
Scala, Haskell i Lisp su funkcionalni programski jezici. | C, C ++, Java su imperativni programski jezici. |
Usredotočenost | |
Funkcionalno programiranje usredotočeno je na krajnji rezultat. | Imperativno programiranje usredotočeno je na opis rada programa. |
Jednostavnost | |
Funkcionalno programiranje je teško. | Imperativno programiranje je lakše. |
Sažetak - Funkcionalno programiranje vs imperativno programiranje
Programska paradigma pruža stil izgradnje strukture i elemenata računalnog programa. Funkcionalno programiranje i imperativno programiranje su dvije od njih. Razlika između funkcionalnog programiranja i imperativnog programiranja je u tome što funkcionalno programiranje računa proračune kao matematičke funkcije i izbjegava promjenu stanja i promjenjivih podataka, dok imperativno programiranje koristi izjave koje mijenjaju stanje programa.