Skillnad mellan funktionell programmering och imperativ programmering

Huvudskillnad - Funktionell Programmering vs Imperative Programmering
 

De nyckelskillnad mellan funktionell programmering och imperativ programmering är att funktionell programmering anser beräkningarna som matematiska funktioner och undviker att ändra statliga och mutable data medan nödvändig programmering använder de satser som ändrar programtillståndet.

Ett programmeringsparadigm ger en stil att bygga upp strukturen och elementen i ett datorprogram. Programmeringsparadigmerna hjälper till att klassificera programmeringsspråk baserat på deras funktioner. Ett programmeringsspråk kan påverka fler paradigmer. I objektorienterat paradigm är programmet strukturerat med hjälp av objekt och objekten skickar meddelanden med hjälp av metoder. Den logiska programmeringen kan uttrycka beräkning i uteslutande när det gäller matematisk logik. Ytterligare två programmeringsparadigmer är funktionell programmering och imperativ programmering. Funktionell programmering tillåter uttrycka beräkningar som utvärdering av matematiska funktioner. Imperativ programmering ger uttalanden som uttryckligen ändrar minnets tillstånd. I denna artikel diskuteras skillnaden mellan funktionell programmering och imperativ programmering.

INNEHÅLL

1. Översikt och nyckelskillnad
2. Vad är funktionell programmering
3. Vad är Imperative Programming
4. Likheter mellan funktionell programmering och imperativ programmering
5. Jämförelse vid sida vid sida - Funktionsprogrammering mot imperativ programmering i tabellform
6. Sammanfattning

Vad är funktionell programmering?

Funktionsprogrammering baseras på matematik. Huvudprincipen bakom funktionell programmering är att all beräkning anses vara en kombination av separata matematiska funktioner. En matematisk funktion kartlägger ingångar till utgångar. Antag att det finns en funktion som heter f (x) = x * x. X-värdet 1 är mappat till utgång 1. x-värdet 2 är mappat till utgång 4. x-värdet 3 är mappat till utgång 9 och så vidare.

Figur 01: Exempel på funktionellt programmeringsspråk - Haskell

I funktionell programmering betraktas mönstren. De funktionella programmeringsspråken Haskell, använder nedanstående metod för att hitta summan av numren.

Summan har heltal, och resultatet blir också ett heltal. Det kan skrivas som summa: [int] -> int. Sammanfattningen kan göras genom att följa nedanstående mönster.

summa [n] = n, summan av ett tal är själva numret.

Om det finns en lista med siffror kan den skrivas enligt följande. N representerar det första talet och ns representerar de andra talen

summa (n, ns) = n + sum ns.

Ovanstående mönster kan tillämpas för att hitta summan av tre siffror som är 3,4,5.

3 + summa [4,5]

3 + (4 + summa [5])

3+ 4 + 5 = 12

En funktion eller ett uttryck sägs ha biverkningar om det ändrar ett tillstånd utanför sitt räckvidd eller har en observerbar interaktion med sina ringerfunktioner förutom det återstående värdet. Funktionell programmering minimerar dessa biverkningar. Statens förändringar beror inte på funktionsingångarna. Det är användbart när man förstår programmets beteende. En nackdel med funktionell programmering är att inlärning funktionell programmering är svårare jämfört med nödvändig programmering.

Vad är Imperative Programming?

Imperativ programmering är ett programmeringsparadigm som använder de uttalanden som ändrar ett programs tillstånd. Det fokuserar på att beskriva hur ett program fungerar. Programmeringsspråk som Java, C och C # är absolut nödvändiga programmeringsspråk. Det ger en stegvis procedur om vad man ska göra. Imperative programmeringsspråk innehåller strukturer som om, annars, för loopar, klasser, objekt och funktioner.

Figur 02: Exempel på Imperative programmeringsspråk - Java

Sammanfattningen av tio tal kan hittas i Java enligt följande. I varje iteration läggs i-värdet till summan och tilldelas summan variabeln. I varje iteration fortsätter summan med att lägga till den tidigare beräknade summan.

int summa = 0;

för (int i = 0; i< =10; i++)

summa = sum + i;

Imperativ programmering är lätt att lära, förstå och felsöka. Det är lätt att hitta programstatusen på grund av att du använder statliga variabler. Några nackdelar är att det kan göra koden lång och kan också minimera skalbarheten.

Vad är likheten mellan funktionell programmering och imperativ programmering?

  • Både funktionell programmering och avgörande programmering är programmeringsparadigmer.

Vad är skillnaden mellan funktionell programmering och imperativ programmering?

Funktionell vs Imperativ programmering

Funktionell programmering är ett programmeringsparadigm som betraktar beräkning som utvärdering av matematiska funktioner och undviker att ändra statliga och muterbara data. Imperativ programmering är ett programmeringsparadigm som använder uttalanden, som ändrar ett programs tillstånd.
 strukturer
Funktionsprogrammering innehåller funktionssamtal och högre orderfunktioner. Imperativ programmering innehåller om, annars, för loopar, funktioner, klasser och objekt.
Programmeringsspråk
Scala, Haskell och Lisp är funktionella programmeringsspråk. C, C ++, Java är absolut nödvändiga programmeringsspråk.
 Fokus
Funktionsprogrammering fokuserar på slutresultatet. Imperativ programmering fokuserar på att beskriva hur ett program fungerar.
Enkelhet
Funktionell programmering är svår. Imperativ programmering är lättare.

Sammanfattning - Funktionell Programmering vs Imperative Programmering

Ett programmeringsparadigm ger en stil att bygga upp strukturen och elementen i ett datorprogram. Funktionell programmering och avgörande programmering är två av dem. Skillnaden mellan funktionell programmering och imperativ programmering är att funktionell programmering anser beräkningarna som matematiska funktioner och undviker att ändra statliga och mutable data medan nödvändig programmering använder de uttalanden som ändrar programtillståndet.

Referens:

1. "Imperative Programming." Wikipedia, Wikimedia Foundation, 28 mars 2018. Tillgänglig här  
2. "Funktionsprogrammering." Wikipedia, Wikimedia Foundation, 28 mars 2018. Tillgänglig här  
3.Computerphile. YouTube, YouTube, den 30 augusti 2013. Tillgänglig här 

Image Courtesy:

1.Haskell Logo'By Haskell1965 - eget arbete, (CC BY-SA 3.0) via Commons Wikimedia 
2.'14485179234'by Linux Skärmdumpar (CC BY 2.0) via Flickr