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: Química: Teoria atómica 8: Modelo Atómico de Bohr 2024, Decembrie
Anonim

Diferența cheie - Programare funcțională vs Programare imperativă

Diferența cheie între programarea funcțională și programarea imperativă este că programarea funcțională consideră calculele ca funcții matematice și evită modificarea stării și a datelor modificabile, în timp ce programarea imperativă utilizează enunțurile care schimbă starea programelor.

O paradigmă de programare oferă un stil de construire a structurii și 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ă obiect, 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 evaluare a funcțiilor matematice. Programarea imperativă oferă instrucțiuni care schimbă în mod explicit starea memoriei. Acest articol discută diferența dintre programarea funcțională și programarea imperativă.

CUPRINS

1. Prezentare generală și diferența cheie

2. Ce este programarea funcțională

3. Ce este programarea imperativă

4. Asemănări între programarea funcțională și programarea imperativă

5. Comparație side by side - Programare funcțională vs Programare imperativă în formă tabelară

6. Rezumat

Ce este programarea funcțională?

Programarea funcțională se bazează pe matematică. Principiul cheie din spatele programării funcționale este acela că tot calculul este considerat 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) = x * x. 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ă, sunt luate în considerare tiparele. Limbajele de programare funcționale Haskell, utilizează metoda de mai jos pentru a găsi sumarea numerelor.

Funcția sumă are valori întregi, iar rezultatul va fi, de asemenea, un număr întreg. Poate fi scris ca sumă: [int] -> int. Suma 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, se poate scrie după cum urmează. N reprezintă primul număr, iar ns reprezintă celelalte numere

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

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

3 + sumă [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 anumită stare în afara scopului său sau are o interacțiune observabilă cu funcțiile sale de apelare în afară de valoarea returnată. Programarea funcțională minimizează aceste efecte secundare. Modifică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 folosește afirmațiile 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. Acesta oferă o procedură pas cu pas cu privire la ce trebuie să faceți. Limbajele de programare imperative conțin structuri precum if, else, while, pentru bucle, clase, obiecte și funcții.

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

Figura 02: Exemplu de limbaj de programare imperativ - Java

Suma 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 sumă continuă să se adauge la suma calculată anterior.

int sumă = 0;

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

sum = sum + i;

}

Programarea imperativă este ușor de învățat, înțeles și 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 poate reduce, de asemenea, 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ă?

Difuzarea articolului din mijloc înainte de tabel

Programare funcțională vs imperativă

Programarea funcțională este o paradigmă de programare care consideră calculul ca o evaluare a funcțiilor matematice și evită schimbarea stării și a datelor modificabile. Programarea imperativă este o paradigmă de programare care folosește instrucțiuni, care schimbă starea unui program.
Structuri
Programarea funcțională conține apeluri funcționale ș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 funcționale de programare. C, C ++, Java sunt limbaje de programare imperative.
Concentrați-vă
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 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 ca funcții matematice și evită schimbarea stării și a datelor modificabile, în timp ce programarea imperativă folosește afirmațiile care schimbă starea programelor.

Recomandat: