Funkcinio programavimo ir privalomojo programavimo skirtumas

Turinys:

Funkcinio programavimo ir privalomojo programavimo skirtumas
Funkcinio programavimo ir privalomojo programavimo skirtumas

Video: Funkcinio programavimo ir privalomojo programavimo skirtumas

Video: Funkcinio programavimo ir privalomojo programavimo skirtumas
Video: Imperative vs Declarative Programming 2024, Lapkritis
Anonim

Pagrindiniai skirtumai – funkcinis programavimas prieš privalomąjį programavimą

Pagrindinis skirtumas tarp funkcinio programavimo ir privalomojo programavimo yra tas, kad funkcinis programavimas skaičiavimus laiko matematinėmis funkcijomis ir vengia keisti būseną bei kintamus duomenis, o būtinasis programavimas naudoja teiginius, kurie keičia programos būseną.

Programavimo paradigma suteikia kompiuterinės programos struktūros ir elementų kūrimo stilių. Programavimo paradigmos padeda klasifikuoti programavimo kalbas pagal jų savybes. Programavimo kalba gali turėti įtakos daugiau paradigmų. Objektinėje paradigmoje programa yra struktūrizuota naudojant objektus, o objektai perduoda pranešimus naudojant metodus. Loginis programavimas gali išreikšti skaičiavimą tik matematinės logikos požiūriu. Dar dvi programavimo paradigmos yra funkcinis programavimas ir privalomas programavimas. Funkcinis programavimas leidžia išreikšti skaičiavimus kaip matematinių funkcijų įvertinimą. Imperative programavimas pateikia teiginius, kurie aiškiai pakeičia atminties būseną. Šiame straipsnyje aptariamas skirtumas tarp funkcinio programavimo ir būtino programavimo.

Kas yra funkcinis programavimas?

Funkcinis programavimas yra pagrįstas matematika. Pagrindinis funkcinio programavimo principas yra tas, kad visi skaičiavimai yra laikomi atskirų matematinių funkcijų deriniu. Matematinė funkcija susieja įvestis su išvestimis. Tarkime, kad yra funkcija, vadinama f(x)=xx. X reikšmė 1 susieta su 1 išėjimu. X reikšmė 2 susieta su 4 išvestimi. X reikšmė 3 susieta su išvestimi 9 ir tt.

Skirtumas tarp funkcinio programavimo ir imperatyvaus programavimo
Skirtumas tarp funkcinio programavimo ir imperatyvaus programavimo

01 pav. Funkcinio programavimo kalbos pavyzdys – Haskell

Funkciniame programavime atsižvelgiama į modelius. Funkcinės programavimo kalbos Haskell naudoja toliau pateiktą metodą skaičių sumavimui rasti.

Sumos funkcija turi sveikųjų skaičių reikšmes, o rezultatas taip pat bus sveikasis skaičius. Ją galima parašyti kaip sumą: [int] -> tarpt. Sumuoti galima laikantis toliau pateiktų šablonų.

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

Jei yra skaičių sąrašas, jį galima parašyti taip. n reiškia pirmąjį skaičių, o ns reiškia kitus skaičius

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

Aukščiau pateiktus šablonus galima pritaikyti norint rasti trijų skaičių, kurie yra 3, 4, 5, sumavimą.

3 + suma [4, 5]

3 + (4 + suma [5])

3+ 4 + 5=12

Teigiama, kad funkcija arba išraiška turi šalutinį poveikį, jei ji modifikuoja kokią nors būseną už jos taikymo srities ribų arba stebima sąveika su iškviečiamomis funkcijomis, be grąžinamos reikšmės. Funkcinis programavimas sumažina šį šalutinį poveikį. Būsenos pokyčiai nepriklauso nuo funkcijų įėjimų. Tai naudinga norint suprasti programos veikimą. Vienas iš funkcinio programavimo trūkumų yra tas, kad mokytis funkcinio programavimo yra sunkiau, palyginti su privalomu programavimu.

Kas yra privalomasis programavimas?

Imperatyvus programavimas yra programavimo paradigma, kuri naudoja teiginius, kurie keičia programos būseną. Jame pagrindinis dėmesys skiriamas programos veikimo aprašymui. Tokios programavimo kalbos kaip Java, C ir C yra būtinos programavimo kalbos. Jame žingsnis po žingsnio pateikiama procedūra, ką daryti. Privalomose programavimo kalbose yra struktūrų, pvz., if, else, while, skirtų ciklams, klasėms, objektams ir funkcijoms.

Pagrindinis funkcinio programavimo ir imperatyvaus programavimo skirtumas
Pagrindinis funkcinio programavimo ir imperatyvaus programavimo skirtumas

02 pav.: būtinos programavimo kalbos pavyzdys – Java

Dešimties skaičių suvestinę „Java“galima rasti taip. Kiekvienoje iteracijoje i reikšmė pridedama prie sumos ir priskiriama sumos kintamajam. Kiekvienoje iteracijoje sumos reikšmė nuolat 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 derinti. Nesunku rasti programos būseną, nes naudojami būsenos kintamieji. Kai kurie trūkumai yra tai, kad dėl to kodas gali užsitęsti ir taip pat sumažinti mastelio keitimą.

Koks yra funkcinio programavimo ir privalomojo programavimo panašumas?

Ir funkcinis programavimas, ir privalomasis programavimas yra programavimo paradigmos

Kuo skiriasi funkcinis programavimas ir privalomasis programavimas?

Funkcinis ir privalomasis programavimas

Funkcinis programavimas yra programavimo paradigma, kuri skaičiavimą laiko matematinių funkcijų įvertinimu ir vengia keisti būseną bei kintamus duomenis. Imperatyvus programavimas yra programavimo paradigma, kuri naudoja teiginius, kurie keičia programos būseną.
Struktūros
Funkcinis programavimas apima funkcijų iškvietimus ir aukštesnės eilės funkcijas. Imperative Programming apima if, else, while, skirtas ciklams, funkcijoms, klasėms ir objektams.
Programavimo kalbos
Scala, Haskell ir Lisp yra funkcinės programavimo kalbos. C, C++, Java yra būtinos programavimo kalbos.
Fokusas
Funkcinis programavimas orientuojasi į galutinį rezultatą. Imperatyvus programavimas skirtas aprašyti, kaip programa veikia.
Paprastumas
Funkcinis programavimas sunkus. Būtinai programuoti lengviau.

Santrauka – funkcinis programavimas prieš privalomąjį programavimą

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

Rekomenduojamas: