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

Kulcskülönbség - funkcionális Programozás vs kényszerprogramozás
 

Az kulcs különbség a funkcionális programozás és a kötelező programozás között az, hogy A funkcionális programozás a számításokat matematikai függvénynek tekinti, és elkerüli az állapot és a módosítható adatok megváltoztatását, míg a kötelező programozás a program állapotát megváltoztató utasításokat használja.

A programozási paradigma biztosítja a számítógépes program felépítésének és elemeinek felépítésének stílusát. A programozási paradigmák segítenek osztályozni a programozási nyelveket jellemzőik alapján. A programozási nyelv több paradigmát befolyásolhat. Objektum-orientált paradigma esetén a program objektumokkal van felépítve, és az objektumok módszerekkel továbbítják az üzeneteket. A logikai programozás kifejezi a számítást kizárólag a matematikai logika szempontjából. További két programozási paradigma a funkcionális programozás és a kötelező programozás. A funkcionális programozás lehetővé teszi a számítások kifejezését a matematikai függvények kiértékeléseként. A kötelező programozás olyan utasításokat szolgáltat, 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.

TARTALOMJEGYZÉK

1. Áttekintés és a legfontosabb különbség
2. Mi a funkcionális programozás?
3. Mi a kötelező programozás?
4. hasonlóságok a funkcionális programozás és a imperatív programozás között
5. Összegzés összehasonlítása - Funkcionális programozás vs imperatív programozás táblázatos formában
6. Összegzés

Mi a funkcionális programozás??

A funkcionális programozás a matematikán alapul. A funkcionális programozás kulcseleme az, hogy az összes számítást külön matematikai függvények kombinációjának kell tekinteni. A matematikai függvény leképezi a bemeneteket a kimenetekhez. Tegyük fel, hogy van egy f (x) = x * x nevû függvény. Az x értékét 1 az 1. kimenethez kell leképezni. Az x értékét 2. a 4. kimenethez kell leképezni. A 3. x értéket a 9. kimenethez kell hozzárendelni és így tovább.

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

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

Az összegfüggvény egész számokkal rendelkezik, és az eredmény egész szám is lesz. Összegként írható: [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 létezik számok listája, akkor az alábbiak szerint írható. N jelöli az első számot, és ns a többi számot

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

A fenti minták felhasználhatók három szám összeadására, amelyek 3,4,5-ek.

3 + összeg [4,5]

3 + (4 + összeg [5])

3+ 4 + 5 = 12

Azt mondják, hogy egy függvénynek vagy kifejezésnek van mellékhatása, ha valamely állapotát módosítja a hatókörén kívül vagy megfigyelhető kölcsönhatásban van a hívó funkcióival a visszatérő érték mellett. A funkcionális programozás minimalizálja ezeket a mellékhatásokat. Az állapotváltozások nem függnek a bemeneti funkcióktól. Hasznos, ha megértjük a program viselkedését. A funkcionális programozás egyik hátránya, hogy a funkcionális programozás megtanulása nehezebb a imperatív programozáshoz képest.

Mi a kötelező programozás??

Az imperatív programozás egy olyan 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. A programozási nyelvek, például a Java, a C és a C # kötelező programozási nyelvek. Ez lépésről lépésre ismerteti a teendőket. A kötelező programozási nyelvek olyan struktúrákat tartalmaznak, mint például, ha mégis, míg hurkok, osztályok, objektumok és függvények számára.

02 ábra: Példa a kötelező programozási nyelvre - Java

A tíz szám összegzése megtalálható a Java-ban az alábbiak szerint. Minden iterációnál az i értéket hozzáadjuk az összeghez, és hozzárendeljük az összegváltozóhoz. Minden egyes iterációnál az összegérték továbbra is 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ás könnyen megtanulható, megérthető és hibakereshető. Az állapotváltozók használata miatt könnyű megtalálni a program állapotát. Néhány hátrány, hogy meghosszabbíthatja a kódot, és minimalizálhatja a méretezhetőséget.

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

  • Mind a funkcionális programozás, mind az imperatív programozás programozási paradigmák.

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

Funkcionális vs imperatív programozás

A funkcionális programozás egy 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 módosítható adatok megváltoztatását. Az imperatív programozás egy programozási paradigma, amely 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ű funkciókat tartalmaz. A kötelező programozás tartalmaz, ha mégis, mikor, hurkokat, funkciókat, osztályokat és objektumokat.
Programozási nyelvek
A Scala, a Haskell és a Lisp funkcionális programozási nyelvek. A C, C ++, Java kötelező programozási nyelvek.
 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ényszerprogramozás

A programozási paradigma biztosítja a számítógépes program felépítésének és elemeinek felépítésének stílusát. A funkcionális programozás és az imperatív programozás ezek közül kettő. A funkcionális programozás és a 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 módosítható adatok megváltoztatását, míg a imperatív programozás a program állapotát megváltoztató utasításokat használja..

Referencia:

1. “Szükséges programozás.” Wikipedia, Wikimedia Alapítvány, 2018. március 28. elérhető itt  
2. „Funkcionális programozás”. Wikipedia, Wikimedia Alapítvány, 2018. március 28. elérhető itt  
3.Computerphile. YouTube, YouTube, 2013. augusztus 30. Itt érhető el 

Kép jóvoltából:

1.'Haskell Logo'By Haskell1965 - Saját munka, (CC BY-SA 3.0) a Commons Wikimedia segítségével 
2.'14485179234 'Linux Screenshots (CC BY 2.0) útján a Flickr-en keresztül