Diferența dintre programarea funcțională și programarea imperativă

Cuprins:

Diferența dintre programarea funcțională și programarea imperativă
Diferența dintre programarea funcțională și programarea imperativă

Video: Diferența dintre programarea funcțională și programarea imperativă

Video: Diferența dintre programarea funcțională și programarea imperativă
Video: Imperative vs Declarative Programming 2024, Iulie
Anonim

Diferența cheie – Programare funcțională vs programare imperativă

Diferența cheie dintre programarea funcțională și programarea imperativă este că programarea funcțională consideră calculele drept funcții matematice și evită schimbarea stării și datele mutabile, în timp ce programarea imperativă folosește instrucțiunile care schimbă starea programului.

O paradigmă de programare oferă un stil de construire a structurii și a elementelor unui program de calculator. Paradigmele de programare ajută la clasificarea limbajelor de programare pe baza caracteristicilor lor. Un limbaj de programare ar putea influența mai multe paradigme. În paradigma orientată pe obiecte, programul este structurat folosind obiecte, iar obiectele transmit mesaje folosind metode. Programarea logică poate exprima calculul exclusiv în termeni de logică matematică. Alte două paradigme de programare sunt programarea funcțională și programarea imperativă. Programarea funcțională permite exprimarea calculelor ca evaluarea funcțiilor matematice. Programarea imperativă oferă instrucțiuni care modifică în mod explicit starea memoriei. Acest articol discută diferența dintre programarea funcțională și programarea imperativă.

Ce este programarea funcțională?

Programarea funcțională se bazează pe matematică. Principiul cheie din spatele programării funcționale este că toate calculele sunt considerate ca o combinație de funcții matematice separate. O funcție matematică mapează intrările la ieșiri. Să presupunem că există o funcție numită f(x)=xx. Valoarea x 1 este mapată la ieșirea 1. Valoarea x 2 este mapată la ieșirea 4. Valoarea x 3 este mapată la ieșirea 9 și așa mai departe.

Diferența dintre programarea funcțională și programarea imperativă
Diferența dintre programarea funcțională și programarea imperativă

Figura 01: Exemplu de limbaj de programare funcțional – Haskell

În programarea funcțională, modelele sunt luate în considerare. Limbajele de programare funcționale Haskell utilizează metoda de mai jos pentru a găsi însumarea numerelor.

Funcția sumă are valori întregi, iar rezultatul va fi, de asemenea, un număr întreg. Poate fi scris ca suma: [int] -> int. Însumarea se poate face urmând modelele de mai jos.

sum[n]=n, suma unui număr este numărul în sine.

Dacă există o listă de numere, aceasta poate fi scrisă după cum urmează. N reprezintă primul număr, iar ns reprezintă celel alte numere

sumă (n, ns)=n + suma ns.

Modelele de mai sus pot fi aplicate pentru a găsi suma a trei numere care sunt 3, 4, 5.

3 + suma [4, 5]

3 + (4 + suma [5])

3+ 4 + 5=12

Se spune că o funcție sau o expresie are efecte secundare dacă modifică o stare în afara domeniului său de aplicare sau are o interacțiune observabilă cu funcțiile de apelare pe lângă valoarea returnată. Programarea funcțională minimizează aceste efecte secundare. Schimbările de stare nu depind de intrările funcției. Este util atunci când înțelegeți comportamentul programului. Un dezavantaj al programării funcționale este că învățarea programării funcționale este mai dificilă în comparație cu programarea imperativă.

Ce este programarea imperativă?

Programarea imperativă este o paradigmă de programare care utilizează instrucțiunile care schimbă starea unui program. Se concentrează pe descrierea modului în care funcționează un program. Limbaje de programare precum Java, C și C sunt limbaje de programare imperative. Oferă o procedură pas cu pas despre ce trebuie făcut. Limbajele de programare imperative conțin structuri precum if, else, while, bucle pentru, clase, obiecte și funcții.

Diferența cheie între programarea funcțională și programarea imperativă
Diferența cheie între programarea funcțională și programarea imperativă

Figura 02: Exemplu de limbaj de programare imperativ – Java

Sumarea a zece numere poate fi găsită în Java după cum urmează. În fiecare iterație, valoarea i este adăugată la sumă și atribuită variabilei sumă. În fiecare iterație, valoarea sumei continuă să se adauge la suma calculată anterior.

int sum=0;

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

sum=suma + i;

}

Programarea imperativă este ușor de învățat, de înțeles și de depanat. Este ușor să găsiți starea programului datorită utilizării variabilelor de stare. Unele dezavantaje sunt că poate face codul lung și, de asemenea, poate minimiza scalabilitatea.

Care este asemănarea dintre programarea funcțională și programarea imperativă?

Atât programarea funcțională, cât și programarea imperativă sunt paradigme de programare

Care este diferența dintre programarea funcțională și programarea imperativă?

Programare funcțională vs imperativă

Programarea funcțională este o paradigmă de programare care consideră calculul ca evaluarea funcțiilor matematice și evită schimbarea stării și datele mutabile. Programarea imperativă este o paradigmă de programare care utilizează instrucțiuni, care schimbă starea unui program.
Structuri
Programarea funcțională conține apeluri de funcții și funcții de ordin superior. Programarea imperativă conține if, else, while, pentru bucle, funcții, clase și obiecte.
Limbaje de programare
Scala, Haskell și Lisp sunt limbaje de programare funcționale. C, C++, Java sunt limbaje de programare imperative.
Focus
Programarea funcțională se concentrează pe rezultatul final. Programarea imperativă se concentrează pe descrierea modului în care funcționează un program.
Simplitate
Programarea funcțională este grea. Programarea imperativă este mai ușoară.

Rezumat – Programare funcțională vs programare imperativă

O paradigmă de programare oferă un stil de construire a structurii și a elementelor unui program de calculator. Programarea funcțională și programarea imperativă sunt două dintre ele. Diferența dintre programarea funcțională și programarea imperativă este că programarea funcțională consideră calculele drept funcții matematice și evită schimbarea stării și datele mutabile, în timp ce programarea imperativă folosește instrucțiunile care schimbă starea programelor.

Recomandat: