Különbség a funkcionális programozás és a kötelező programozás között

Tartalomjegyzék:

Különbség a funkcionális programozás és a kötelező programozás között
Különbség a funkcionális programozás és a kötelező programozás között

Videó: Különbség a funkcionális programozás és a kötelező programozás között

Videó: Különbség a funkcionális programozás és a kötelező programozás között
Videó: Imperative vs Declarative Programming 2024, Július
Anonim

Kulcskülönbség – Funkcionális programozás vs kötelező programozás

A legfontosabb különbség a funkcionális programozás és az imperatív programozás között az, hogy a funkcionális programozás a számításokat matematikai függvényeknek tekinti, és elkerüli az állapot és a változó adatok megváltoztatását, míg az imperatív programozás a program állapotát megváltoztató utasításokat használja.

A programozási paradigma egy stílust biztosít a számítógépes programok szerkezetének és elemeinek felépítéséhez. A programozási paradigmák segítenek a programozási nyelvek osztályozásában jellemzőik alapján. Egy programozási nyelv több paradigmát is befolyásolhat. Az objektumorientált paradigmában a program objektumok segítségével épül fel, és az objektumok metódusokkal adják át az üzeneteket. A logikai programozás a számítást kizárólag matematikai logika szerint tudja kifejezni. További két programozási paradigma a funkcionális programozás és az imperatív programozás. A funkcionális programozás lehetővé teszi a számítások kifejezését matematikai függvények kiértékeléseként. Az imperatív programozás olyan utasításokat biztosít, amelyek kifejezetten megváltoztatják a memória állapotát. Ez a cikk a funkcionális programozás és a kötelező programozás közötti különbséget tárgyalja.

Mi a funkcionális programozás?

A funkcionális programozás a matematikán alapul. A funkcionális programozás alapelve az, hogy az összes számítást különálló matematikai függvények kombinációjának tekintik. Egy matematikai függvény leképezi a bemeneteket a kimenetekre. Tegyük fel, hogy van egy f(x)=xx nevű függvény. Az 1-es x érték az 1-es kimenetre, a 2-es x-érték pedig a 4-es kimenetre van leképezve. A 3. x érték a 9-es kimenetre van leképezve és így tovább.

Különbség a funkcionális programozás és az imperatív programozás között
Különbség a funkcionális programozás és az imperatív programozás között

01. ábra: Példa funkcionális programozási nyelvre – Haskell

A funkcionális programozás során a mintákat veszik figyelembe. A Haskell funkcionális programozási nyelvek az alábbi módszert használják a számok összegzésének megtalálásához.

Az összeg függvénynek egész értékei vannak, és az eredmény is egész szám lesz. Összegként írható fel: [int] -> int. Az összegzést az alábbi minták követésével lehet elvégezni.

összeg[n]=n, egy szám összege maga a szám.

Ha van számlista, az a következőképpen írható fel. Az n az első számot jelöli, az ns pedig a többi számot

összeg (n, ns)=n + ns összeg.

A fenti minták használhatók három szám összegzésének megkeresésére, amelyek 3, 4, 5.

3 + összeg [4, 5]

3 + (4 + összeg [5])

3+ 4 + 5=12

Egy függvényről vagy kifejezésről azt mondják, hogy mellékhatásai vannak, ha a hatókörén kívül módosít egy állapotot, vagy megfigyelhető kölcsönhatásba lép a hívó függvényeivel a visszatérő érték mellett. A funkcionális programozás minimálisra csökkenti ezeket a mellékhatásokat. Az állapotváltozások nem függenek a függvénybemenetektől. Hasznos a program viselkedésének megértéséhez. A funkcionális programozás egyik hátránya, hogy a funkcionális programozás megtanulása nehezebb, mint az imperatív programozás.

Mi az a kötelező programozás?

Az imperatív programozás egy programozási paradigma, amely a program állapotát megváltoztató utasításokat használja. A program működésének leírására összpontosít. Az olyan programozási nyelvek, mint a Java, C és C, elengedhetetlen programozási nyelvek. Lépésről lépésre bemutatja, hogy mit kell tenni. A kötelező programozási nyelvek olyan struktúrákat tartalmaznak, mint például if, else, while, for ciklusok, osztályok, objektumok és függvények.

Funkcionális különbség a funkcionális programozás és az imperatív programozás között
Funkcionális különbség a funkcionális programozás és az imperatív programozás között

02. ábra: Példa kötelező programozási nyelvre – Java

Tíz szám összegzése a következőképpen található meg a Java nyelven. Minden iterációban az i értéket hozzáadjuk az összeghez, és hozzárendeljük az összeg változóhoz. Minden iterációban az összeg értéke folyamatosan hozzáadódik az előzőleg kiszámított összeghez.

int összeg=0;

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

összeg=összeg + i;

}

A kötelező programozást könnyű megtanulni, megérteni és hibakeresni. Könnyű megtalálni a program állapotát az állapotváltozók használatával. Néhány hátránya, hogy hosszadalmassá teheti a kódot, és minimálisra csökkentheti a méretezhetőséget.

Mi a hasonlóság a funkcionális programozás és az imperatív programozás között?

Mind a funkcionális programozás, mind az imperatív programozás programozási paradigma

Mi a különbség a funkcionális programozás és az imperatív programozás között?

Funkcionális vs kötelező programozás

A funkcionális programozás egy olyan programozási paradigma, amely a számítást matematikai függvények kiértékelésének tekinti, és elkerüli az állapotváltozást és a változtatható adatokat. Az imperatív programozás egy programozási paradigma, amely olyan utasításokat használ, amelyek megváltoztatják a program állapotát.
Struktúrák
A funkcionális programozás funkcióhívásokat és magasabb rendű függvényeket tartalmaz. A kötelező programozás tartalmazza az if, else, while ciklusokat, függvényeket, osztályokat és objektumokat.
Programozási nyelvek
Scala, Haskell és Lisp funkcionális programozási nyelvek. C, C++, Java elengedhetetlen programozási nyelvek.
Fókusz
A funkcionális programozás a végeredményre összpontosít. A kötelező programozás a program működésének leírására összpontosít.
Egyszerűség
A funkcionális programozás nehéz. A kötelező programozás egyszerűbb.

Összefoglaló – Funkcionális programozás kontra kötelező programozás

A programozási paradigma egy stílust biztosít a számítógépes programok szerkezetének és elemeinek felépítéséhez. A funkcionális programozás és az imperatív programozás kettő közülük. A funkcionális programozás és az imperatív programozás közötti különbség az, hogy a funkcionális programozás a számításokat matematikai függvényeknek tekinti, és elkerüli az állapot és a változó adatok megváltoztatását, míg az imperatív programozás a program állapotát megváltoztató utasításokat használja.

Ajánlott: