Fő kü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 mutálható 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 a számítógépes program struktúrájának és elemeinek felépítésének stílusát biztosítja. 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 felhasználásával épül fel, és az objektumok módszerekkel adják át az üzeneteket. A logikai programozás a számítást kizárólag matematikai logikában fejezheti ki. 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 tartalmaz, amelyek kifejezetten megváltoztatják a memória állapotát. Ez a cikk a funkcionális programozás és az imperatív programozás közötti különbséget tárgyalja.
TARTALOM
1. Áttekintés és kulcsfontosságú különbség
2. Mi a funkcionális programozás
3. Mi az elengedhetetlen programozás
4. A funkcionális programozás és az elengedhetetlen programozás közötti hasonlóságok
5. Egymás melletti összehasonlítás - Funkcionális programozás és az elengedhetetlen programozás táblázatos formában
6. Összefoglalás
Mi a funkcionális programozás?
A funkcionális programozás a matematikán alapul. A funkcionális programozás mögött az az alapelv, hogy az összes számítást külön 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) = x * x nevű függvény. Az x érték 1 az 1 kimenethez van hozzárendelve. A 2 x érték a 4 kimenethez van feltérképezve.
01. ábra: Példa a funkcionális programozási nyelvre - Haskell
A funkcionális programozás során a mintákat veszik figyelembe. A funkcionális programozási nyelvek, a Haskell, az alábbi módszerrel keresi meg a számok összegzését.
Az összeg függvénynek egész értékei vannak, és az eredmény is egész szám lesz. Összegként írható: [int] -> int. Az összegzést az alábbi minták követésével tehetjük meg.
összeg [n] = n, egy szám összege maga a szám.
Ha van számlista, akkor az alábbiak szerint írható. Az n az első számot, az ns pedig a többi számot jelenti
összeg (n, ns) = n + összeg ns.
A fenti minták alkalmazhatók három, 3,4,5 szám összeadására.
3 + összeg [4,5]
3 + (4 + összeg [5])
3+ 4 + 5 = 12
Azt mondják, hogy egy függvénynek vagy kifejezésnek mellékhatásai vannak, ha módosít valamilyen állapotot a hatókörén kívül, vagy a visszatérő érték mellett megfigyelhető kölcsönhatásba lép a hívó funkcióival. A funkcionális programozás minimalizálja ezeket a mellékhatásokat. Az állapotváltozások nem függenek a függvény bemeneteitől. Hasznos a program viselkedésének megértésében. A funkcionális programozás egyik hátránya, hogy a funkcionális programozás megtanulása nehezebb az imperatív programozáshoz képest.
Mi az elengedhetetlen programozás?
Az imperatív programozás olyan programozási paradigma, amely az utasításokat használja, amelyek megváltoztatják a program állapotát. A program működésének leírására összpontosít. A programozási nyelvek, például a Java, a C és a C #, elengedhetetlen programozási nyelvek. Ez lépésről lépésre biztosítja a teendőket. Az imperatív programozási nyelvek olyan struktúrákat tartalmaznak, mint például if, else, míg a ciklusok, osztályok, objektumok és függvények esetében.
02. ábra: Példa az imperatív programozási nyelvre - Java
Tíz szám összegzése megtalálható a Java-ban az alábbiak szerint. Minden iterációban az i értéket hozzáadjuk az összeghez és hozzárendeljük az összeg változóhoz. Minden egyes iterációban az összeg értéke folyamatosan növekszik az előzőleg kiszámított összeghez.
int összeg = 0;
mert (int i = 0; i <= 10; i ++) {
összeg = összeg + i;
}
A kötelező programozást könnyű megtanulni, megérteni és hibakeresni. Az állapotváltozók használata miatt könnyű megtalálni a program állapotát. Néhány hátránya, hogy meghosszabbíthatja a kódot, és minimalizálhatja a méretezhetőséget.
Mi a hasonlóság a funkcionális programozás és az elengedhetetlen programozás között?
A funkcionális programozás és az imperatív programozás egyaránt programozási paradigma
Mi a különbség a funkcionális programozás és az elengedhetetlen programozás között?
Különböző cikk a táblázat előtt
Funkcionális vs kötelező programozás |
|
A funkcionális programozás olyan programozási paradigma, amely a számítást a matematikai függvények értékelésének tekinti, és elkerüli az állapot és a változtatható adatok megváltoztatását. | Az imperatív programozás olyan programozási paradigma, amely olyan utasításokat használ, amelyek megváltoztatják a program állapotát. |
Szerkezetek | |
A Funkcionális programozás funkcióhívásokat és magasabb rendű funkciókat tartalmaz. | Az imperatív programozás tartalmazza az if, else, while ciklusokat, függvényeket, osztályokat és objektumokat. |
Programozási nyelvek | |
A Scala, Haskell és Lisp funkcionális programozási nyelvek. | A C, C ++, a Java elengedhetetlen programozási nyelv. |
Fókusz | |
A funkcionális programozás a végeredményre összpontosít. | Az imperatív 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 könnyebb. |
Összegzés - Funkcionális programozás vs kötelező programozás
A programozási paradigma a számítógépes program struktúrájának és elemeinek felépítésének stílusát biztosítja. A funkcionális programozás és az elengedhetetlen programozás ezek közül kettő. 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áltoztatható adatok megváltoztatását, míg az imperatív programozás a program állapotát megváltoztató utasításokat használja.