avainero toiminnallisen ja välttämättömän ohjelmoinnin välillä on, että toiminnallinen ohjelmointi pitää laskelmia matemaattisina funktioina ja välttää tilan ja muuttuvan datan muuttamista, kun taas välttämätön ohjelmointi käyttää lauseita, jotka muuttavat ohjelman tilaa.
Ohjelmointiparadigma tarjoaa tyylin tietokoneohjelman rakenteen ja elementtien rakentamiseen. Ohjelmointikäytännöt auttavat luokittelemaan ohjelmointikielet niiden ominaisuuksien perusteella. Ohjelmointikieli saattaa vaikuttaa enemmän paradigmoihin. Oliopainotteisessa paradigmassa ohjelma rakennetaan objektien avulla ja objektit välittävät viestit menetelmillä. Looginen ohjelmointi voi ilmaista laskennan yksinomaan matemaattisessa logiikassa. Kaksi muuta ohjelmointiparadigmaa ovat toiminnallinen ohjelmointi ja välttämätön ohjelmointi. Funktionaalinen ohjelmointi mahdollistaa laskelmien ilmaisemisen matemaattisten funktioiden arviointina. Pakollinen ohjelmointi tarjoaa lauseita, jotka nimenomaisesti muuttavat muistin tilaa. Tässä artikkelissa käsitellään eroa toiminnallisen ja välttämättömän ohjelmoinnin välillä.
1. Yleiskatsaus ja keskeiset erot
2. Mikä on toiminnallinen ohjelmointi
3. Mikä on välttämätöntä ohjelmointia
4. Funktionaalisen ja välttämättömän ohjelmoinnin väliset yhtäläisyydet
5. Vertailu rinnakkain - toiminnallinen ohjelmointi vs. pakollinen ohjelmointi taulukkomuodossa
6. Yhteenveto
Funktionaalinen ohjelmointi perustuu matematiikkaan. Funktionaalisen ohjelmoinnin keskeinen periaate on, että kaikkea laskentaa pidetään erillisten matemaattisten funktioiden yhdistelmänä. Matemaattinen toiminto kuvaa tulot lähtöihin. Oletetaan, että on olemassa funktio nimeltä f (x) = x * x. X-arvo 1 on kartoitettu tuotokseen 1. x-arvo 2 on kartoitettu tuotokseen 4. x-arvo 3 on kartoitettu tuotokseen 9 ja niin edelleen.
Kuva 01: Esimerkki toiminnallisesta ohjelmointikielestä - Haskell
Toiminnallisessa ohjelmoinnissa mallit otetaan huomioon. Toiminnalliset ohjelmointikielet Haskell käyttää alla olevaa menetelmää numeroiden summauksen löytämiseen.
Summafunktiolla on kokonaislukuarvoja, ja tulos on myös kokonaisluku. Se voidaan kirjoittaa summana: [int] -> int. Summaus voidaan tehdä noudattamalla alla olevia kuvioita.
summa [n] = n, yhden numeron summa on luku itse.
Jos on luettelo numeroista, se voidaan kirjoittaa seuraavasti. N edustaa ensimmäistä numeroa ja ns edustaa muita numeroita
summa (n, ns) = n + summa ns.
Yllä olevia kuvioita voidaan käyttää kolmen luvun, jotka ovat 3,4,5, summaamiseen.
3 + summa [4,5]
3 + (4 + summa [5])
3 + 4 + 5 = 12
Funktion tai lausekkeen sanotaan olevan sivuvaikutuksia, jos se modifioi jotakin tilaa sen soveltamisalan ulkopuolella tai sillä on havaittavissa oleva vuorovaikutus kutsuvien toimintojen kanssa palautusarvon lisäksi. Toiminnallinen ohjelmointi minimoi nämä sivuvaikutukset. Tilamuutokset eivät riipu toimintotuloista. Se on hyödyllinen, kun ymmärretään ohjelman käyttäytymistä. Yksi toiminnallisen ohjelmoinnin haittapuoli on, että toiminnallisen ohjelmoinnin oppiminen on vaikeampaa verrattuna välttämättömään ohjelmointiin.
Pakollinen ohjelmointi on ohjelmointiparadio, joka käyttää lauseita, jotka muuttavat ohjelman tilaa. Se keskittyy kuvaamaan ohjelman toimintaa. Ohjelmointikielet, kuten Java, C ja C #, ovat välttämättömiä ohjelmointikieliä. Se tarjoaa vaihe vaiheelta mitä tehdä. Pakolliset ohjelmointikielet sisältävät rakenteita, kuten silloin, silloin, silmukoille, luokille, objekteille ja funktioille.
Kuva 02: Esimerkki pakollisesta ohjelmointikielestä - Java
Kymmenen numeron summaaminen löytyy Java: sta seuraavasti. Jokaisessa iteraatiossa i-arvo lisätään summaan ja määritetään summamuuttujalle. Jokaisessa iteraatiossa summa-arvo jatkuu lisäämällä aiemmin laskettuun summaan.
int summa = 0;
varten (int i = 0; i< =10; i++)
summa = summa + i;
Pakollinen ohjelmointi on helppo oppia, ymmärtää ja virheenkorjaus. Ohjelmatila on helppo löytää tilamuuttujien käytön takia. Joitakin haittoja on, että se voi tehdä koodista pitkän ja voi myös minimoida skaalattavuuden.
Toiminnallinen vs. pakollinen ohjelmointi | |
Funktionaalinen ohjelmointi on ohjelmointiparadigma, jossa laskentaa pidetään matemaattisten funktioiden arviointina ja vältetään tilan ja muutettavan datan muuttaminen. | Pakollinen ohjelmointi on ohjelmointiparadigma, joka käyttää lauseita, jotka muuttavat ohjelman tilaa. |
rakenteet | |
Toiminnallinen ohjelmointi sisältää toimintopuhelut ja korkeamman asteen toiminnot. | Pakollinen ohjelmointi sisältää silmukoille, toiminnoille, luokille ja objekteille, jos muuten, kun taas. |
Ohjelmointikielet | |
Scala, Haskell ja Lisp ovat toimivia ohjelmointikieliä. | C, C ++, Java ovat välttämättömiä ohjelmointikieliä. |
fokus | |
Toiminnallinen ohjelmointi keskittyy lopputulokseen. | Pakollinen ohjelmointi keskittyy kuvaamaan ohjelman toimintaa. |
Yksinkertaisuus | |
Toiminnallinen ohjelmointi on vaikeaa. | Pakollinen ohjelmointi on helpompaa. |
Ohjelmointiparadigma tarjoaa tyylin tietokoneohjelman rakenteen ja elementtien rakentamiseen. Funktionaalinen ohjelmointi ja pakollinen ohjelmointi ovat kaksi niistä. Ero toiminnallisen ja välttämättömän ohjelmoinnin välillä on se, että toiminnallinen ohjelmointi pitää laskelmia matemaattisina funktioina ja välttää tilan ja muutettavan datan muuttamista, kun taas välttämätön ohjelmointi käyttää lauseita, jotka muuttavat ohjelman tilaa.
1. ”Pakollinen ohjelmointi.” Wikipedia, Wikimedia Foundation, 28. maaliskuuta 2018. Saatavilla täältä
2. ”Toiminnallinen ohjelmointi.” Wikipedia, Wikimedia Foundation, 28. maaliskuuta 2018. Saatavilla täältä
3.Computerphile. YouTube, YouTube, 30. elokuuta 2013. Saatavilla täällä
1.'Haskell Logo'By Haskell1965 - Oma työ, (CC BY-SA 3.0) Commons-Wikimedian kautta
2.'14485179234'Line Screenshots (CC BY 2.0) Flickrin kautta