Skirtumas tarp funkcinio ir imperatyvaus programavimo

Pagrindinis skirtumas - funkcinis Programavimas prieš imperatyvų programavimą
 

pagrindinis skirtumas tarp funkcinio ir būtinojo programavimo yra tai, kad funkcinis programavimas laiko skaičiavimus matematinėmis funkcijomis ir vengia keisti būseną bei keičiamus duomenis, o imperatyvus programavimas naudoja teiginius, kurie keičia programų būseną.

Programavimo paradigma suteikia kompiuterio programos struktūros ir elementų kūrimo stilių. Programavimo paradigmos padeda klasifikuoti programavimo kalbas pagal jų ypatybes. Programavimo kalba gali įtakoti daugiau paradigmų. Objektinėje paradigmoje programa yra struktūrizuota naudojant objektus, o objektai perduoda pranešimus naudodamiesi metodais. Loginis programavimas gali išreikšti skaičiavimą tik matematinės logikos prasme. Kitos dvi programavimo paradigmos yra funkcinis programavimas ir imperatyvus programavimas. Funkcinis programavimas leidžia skaičiavimus išreikšti kaip matematinių funkcijų vertinimą. Imperatyvus programavimas pateikia teiginius, kurie aiškiai keičia atminties būseną. Šiame straipsnyje aptariamas skirtumas tarp funkcinio programavimo ir imperatyvaus programavimo.

TURINYS

1. Apžvalga ir svarbiausias skirtumas
2. Kas yra funkcinis programavimas
3. Kas yra būtinas programavimas
4. Funkcinio ir imperatyvaus programavimo panašumai
5. Šalutinis palyginimas - funkcinis programavimas ir imperatyvus programavimas lentelės forma
6. Santrauka

Kas yra funkcinis programavimas?

Funkcinis programavimas remiasi matematika. Pagrindinis funkcinio programavimo principas yra tas, kad visas skaičiavimas yra laikomas atskirų matematinių funkcijų deriniu. Matematinė funkcija susieja įvestis su išvestimis. Tarkime, kad yra funkcija, vadinama f (x) = x * x. X reikšmė 1 priskiriama 1 išvestinei. X reikšmė 2 priskiriama išvestinei 4. X reikšmė 3 priskiriama 9 išėjimui ir tt.

01 pav. Funkcinio programavimo kalbos pavyzdys - Haskell

Funkcinio programavimo metu atsižvelgiama į modelius. Funkcinio programavimo kalbos „Haskell“, naudodamos žemiau pateiktą metodą, suranda skaičius.

Sumos funkcija turi sveikas skaičius, o rezultatas taip pat bus sveikasis skaičius. Jis gali būti parašytas kaip suma: [int] -> int. Apibendrinimas gali būti atliktas pagal žemiau pateiktus modelius.

suma [n] = n, vieno skaičiaus suma yra pats skaičius.

Jei yra skaičių sąrašas, jis gali būti parašytas taip. N žymi pirmąjį skaičių, o ns žymi kitus skaičius

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

Aukščiau pateiktus modelius galima naudoti norint suskaičiuoti tris skaičius, kurie yra 3,4,5.

3 + suma [4,5]

3 + (4 + suma [5])

3+ 4 + 5 = 12

Sakoma, kad funkcija ar išraiška turi šalutinį poveikį, jei ji modifikuoja kokią nors būseną už jos ribų arba turi ne tik grįžtamąją vertę, bet ir ryšį su jos iškvietimo funkcijomis. Funkcinis programavimas sumažina šį šalutinį poveikį. Būsenos pokyčiai nepriklauso nuo įvestų funkcijų. Tai naudinga suvokiant programos elgesį. Vienas funkcinio programavimo trūkumas yra tas, kad mokytis funkcinio programavimo yra sunkiau, palyginti su būtinuoju programavimu.

Kas yra imperatyvus programavimas?

Imperatyvus programavimas yra programavimo paradigma, kurioje naudojami teiginiai, keičiantys programos būseną. Pagrindinis dėmesys skiriamas programos veikimo aprašymui. Programavimo kalbos, tokios kaip Java, C ir C #, yra būtinos programavimo kalbos. Jame pateikiama žingsnis po žingsnio procedūra, ką reikia padaryti. Imperatyviose programavimo kalbose yra struktūros, tokios kaip, jei dar, o kilpų, klasių, objektų ir funkcijų struktūros.

02 pav. Būtinosios programavimo kalbos pavyzdys - Java

Dešimt skaičių sumą „Java“ galima rasti taip. Kiekvienoje iteracijoje i reikšmė pridedama prie sumos ir priskiriama sumos kintamajam. Kiekvienoje iteracijoje sumos vertė pridedama prie anksčiau apskaičiuotos sumos.

int suma = 0;

už (int i = 0; i< =10; i++)

suma = suma + i;

Imperatyvų programavimą lengva išmokti, suprasti ir suderinti. Naudojant būsenos kintamuosius lengva rasti programos būseną. Kai kurie trūkumai gali ilginti kodą ir taip pat sumažinti mastelį.

Koks yra funkcinio programavimo ir imperatyvaus programavimo panašumas?

  • Funkcinis ir imperatyvusis programavimas yra programavimo paradigmos.

Kuo skiriasi funkcinis programavimas ir imperatyvus programavimas??

Funkcinis ir būtinasis programavimas

Funkcinis programavimas yra programavimo paradigma, kurioje skaičiavimas laikomas matematinių funkcijų įvertinimu ir išvengiama būsenos ir keičiamų duomenų pakeitimo. Imperatyvus programavimas yra programavimo paradigma, kurioje naudojami teiginiai, keičiantys programos būseną.
 Konstrukcijos
Funkcinis programavimas apima funkcijų skambučius ir aukštesnės eilės funkcijas. Imperatyviame programavime yra kilpų, funkcijų, klasių ir objektų, jei dar, tuo tarpu.
Programavimo kalbos
„Scala“, „Haskell“ ir „Lisp“ yra funkcinės programavimo kalbos. C, C ++, Java yra būtinos programavimo kalbos.
 Dėmesys
Funkcinis programavimas orientuojasi į galutinį rezultatą. Imperatyvus programavimas yra skirtas aprašyti, kaip veikia programa.
Paprastumas
Funkcinis programavimas yra sunkus. Imperatyvus programavimas yra lengvesnis.

Santrauka - Funkcinis Programavimas prieš imperatyvų programavimą

Programavimo paradigma suteikia kompiuterio programos struktūros ir elementų kūrimo stilių. Funkcinis programavimas ir būtinasis programavimas yra du iš jų. Skirtumas tarp funkcinio programavimo ir imperatyvaus programavimo yra tas, kad funkcinis programavimas skaičiavimus laiko matematinėmis funkcijomis ir vengia keisti būseną bei keičiamus duomenis, o imperatyvus programavimas naudoja teiginius, kurie keičia programos būseną..

Nuoroda:

1. „Privalomas programavimas“. Vikipedija, Wikimedia Foundation, 2018 m. Kovo 28 d. Galima rasti čia  
2. „Funkcinis programavimas“. Vikipedija, Wikimedia Foundation, 2018 m. Kovo 28 d. Galima rasti čia  
3.Kompiuteris. „YouTube“, „YouTube“, 2013 m. Rugpjūčio 30 d. Galima rasti čia 

Vaizdo mandagumas:

1.'Haskell Logo'By Haskell1965 - Nuosavas darbas, (CC BY-SA 3.0) per Commons Wikimedia 
„14485179234“ „Linux“ ekrano kopijos (CC BY 2.0) per „Flickr“