Verschil tussen functionele programmering en imperatieve programmering

Belangrijkste verschil - Functioneel Programmering versus imperatieve programmering
 

De belangrijk verschil tussen functioneel programmeren en imperatief programmeren is dat het functioneel programmeren beschouwt de berekeningen als wiskundige functies en vermijdt veranderende toestands- en veranderbare gegevens terwijl imperatief programmeren de uitspraken gebruikt die de programma's wijzigen.

Een programmeerparadigma biedt een stijl van het bouwen van de structuur en elementen van een computerprogramma. De programmeerparadigma's helpen om programmeertalen te classificeren op basis van hun kenmerken. Een programmeertaal kan van invloed zijn op meer paradigma's. In objectgeoriënteerd paradigma wordt het programma gestructureerd met behulp van objecten en geven de objecten berichten door met behulp van methoden. De logica-programmering kan de berekening uitsluitend in termen van wiskundige logica uitdrukken. Nog twee programmeringsparadigma's zijn functioneel programmeren en imperatief programmeren. Functioneel programmeren maakt het mogelijk om berekeningen uit te drukken als de evaluatie van wiskundige functies. Imperative programming biedt statements die de toestand van het geheugen expliciet veranderen. Dit artikel bespreekt het verschil tussen functioneel programmeren en imperatief programmeren.

INHOUD

1. Overzicht en belangrijkste verschil
2. Wat is Functioneel programmeren
3. Wat is imperatief programmeren
4. Overeenkomsten tussen functionele programmering en imperatieve programmering
5. Side-by-side vergelijking - Functioneel programmeren versus imperatief programmeren in tabelvorm
6. Samenvatting

Wat is Functioneel programmeren?

Functioneel programmeren is gebaseerd op wiskunde. Het belangrijkste principe achter functionele programmering is dat alle berekeningen worden beschouwd als een combinatie van afzonderlijke wiskundige functies. Een wiskundige functie wijst inputs naar outputs toe. Neem aan dat er een functie is genaamd f (x) = x * x. De x-waarde 1 is toegewezen aan uitgang 1. De x-waarde 2 is toegewezen aan uitgang 4. De x-waarde 3 is toegewezen aan uitgang 9 enzovoort.

Figuur 01: Voorbeeld van functionele programmeertaal - Haskell

Bij functioneel programmeren worden de patronen beschouwd. De functionele programmeertalen Haskell, gebruikt de onderstaande methode om de optelling van de getallen te vinden.

De somfunctie heeft gehele getallen en het resultaat is ook een geheel getal. Het kan worden geschreven als som: [int] -> int. De sommatie kan worden gedaan door de onderstaande patronen te volgen.

som [n] = n, de som van één getal is het getal zelf.

Als er een lijst met nummers is, kan deze als volgt worden geschreven. De n staat voor het eerste getal en ns staat voor de andere nummers

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

Bovenstaande patronen kunnen worden toegepast om de optelling van drie getallen te vinden die 3,4,5 zijn.

3 + som [4,5]

3 + (4 + som [5])

3+ 4 + 5 = 12

Van een functie of expressie wordt gezegd dat deze bijwerkingen heeft als deze een bepaalde status buiten het bereik ervan wijzigt of een waarneembare interactie heeft met zijn aanroepfuncties naast de terugkerende waarde. Functioneel programmeren minimaliseert deze bijwerkingen. De statuswijzigingen zijn niet afhankelijk van de functie-ingangen. Het is handig als u het gedrag van het programma begrijpt. Een nadeel van functioneel programmeren is dat het leren van functioneel programmeren moeilijker is in vergelijking met imperatief programmeren.

Wat is imperatief programmeren?

Imperative programming is een programmeerparadigma dat de uitspraken gebruikt die de status van een programma wijzigen. Het richt zich op het beschrijven van hoe een programma werkt. Programmeertalen zoals Java, C en C # zijn imperatieve programmeertalen. Het biedt een stapsgewijze procedure over wat te doen. Imperatieve programmeertalen bevatten structuren zoals if, else, while, voor loops, classes, objects en functions.

Figuur 02: Voorbeeld van Imperative programmeertaal - Java

De optelling van tien nummers is als volgt in Java te vinden. In elke iteratie wordt de i-waarde toegevoegd aan de som en toegewezen aan de sum-variabele. In elke iteratie blijft de somwaarde optellen bij de eerder berekende som.

int som = 0;

voor (int i = 0; i< =10; i++)

som = som + i;

Imperatieve programmering is eenvoudig te leren, te begrijpen en te debuggen. Het is gemakkelijk om de programmatoestand te vinden vanwege het gebruik van toestandsvariabelen. Sommige nadelen zijn dat het de code lang kan maken en de schaalbaarheid kan minimaliseren.

Wat is de overeenkomst tussen functionele programmering en imperatieve programmering?

  • Zowel Functioneel programmeren als imperatief programmeren zijn programmeerparadigma's.

Wat is het verschil tussen functionele programmering en imperatieve programmering?

Functioneel versus imperatief programmeren

Functioneel programmeren is een programmeerparadigma dat berekening beschouwt als de evaluatie van wiskundige functies en vermijdt veranderende status en veranderlijke gegevens. Imperative Programming is een programmeerparadigma dat uitspraken gebruikt die de status van een programma wijzigen.
 structuren
Functioneel programmeren bevat functieaanroepen en functies van hogere rangorde. Imperative Programming bevat if, else, while, voor loops, functies, klassen en objecten.
Programmeertalen
Scala, Haskell en Lisp zijn functionele programmeertalen. C, C ++, Java zijn imperatieve programmeertalen.
 Focus
Functional Programming richt zich op het eindresultaat. Imperative Programming richt zich op het beschrijven van hoe een programma werkt.
Eenvoud
Functioneel programmeren is moeilijk. Imperatieve programmering is eenvoudiger.

Samenvatting - Functioneel Programmering versus imperatieve programmering

Een programmeerparadigma biedt een stijl van het bouwen van de structuur en elementen van een computerprogramma. Functioneel programmeren en imperatief programmeren zijn er twee van. Het verschil tussen functioneel programmeren en imperatief programmeren is dat functioneel programmeren de berekeningen beschouwt als wiskundige functies en vermijdt het veranderen van toestands- en veranderbare gegevens terwijl imperatief programmeren de uitspraken gebruikt die de programma's wijzigen.

Referentie:

1. "Imperative Programming." Wikipedia, Wikimedia Foundation, 28 maart 2018. Beschikbaar Hier  
2. "Functioneel programmeren." Wikipedia, Wikimedia Foundation, 28 maart 2018. Beschikbaar Hier  
3.Computerphile. YouTube, YouTube, 30 augustus 2013. Beschikbaar Hier 

Afbeelding met dank aan:

1.'Haskell Logo'door Haskell1965 - Eigen werk, (CC BY-SA 3.0) via Commons Wikimedia 
2.'14485179234'door Linux Screenshots (CC BY 2.0) via Flickr