Belangrijkste verschil - Functioneel programmeren versus imperatief programmeren
Het belangrijkste verschil tussen functioneel programmeren en imperatief programmeren is dat de functionele programmering de berekeningen beschouwt als wiskundige functies en het wijzigen van status en veranderlijke gegevens vermijdt, terwijl imperatief programmeren de instructies gebruikt die de programmastatus veranderen.
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 zou meer paradigma's kunnen beïnvloeden. In objectgeoriënteerd paradigma is het programma gestructureerd met behulp van objecten en geven de objecten berichten door met behulp van methoden. De logische programmering kan berekeningen uitsluitend uitdrukken in termen van wiskundige logica. Twee andere programmeerparadigma's zijn functioneel programmeren en imperatief programmeren. Functioneel programmeren maakt het mogelijk berekeningen uit te drukken als de evaluatie van wiskundige functies. Imperative programming biedt uitspraken die de toestand van het geheugen expliciet wijzigen. 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 functioneel programmeren en imperatief programmeren
5. Vergelijking zij aan zij - Functioneel programmeren versus imperatief programmeren in tabelvorm
6. Samenvatting
Wat is functioneel programmeren?
Functioneel programmeren is gebaseerd op wiskunde. Het sleutelprincipe achter functioneel programmeren is dat alle berekeningen worden beschouwd als een combinatie van afzonderlijke wiskundige functies. Een wiskundige functie koppelt inputs aan outputs. Stel dat er een functie is met de naam f (x) = x * x. De x-waarde 1 wordt toegewezen aan uitvoer 1. De x-waarde 2 wordt toegewezen aan uitvoer 4. De x-waarde 3 wordt toegewezen aan uitvoer 9 enzovoort.
Figuur 01: Voorbeeld van functionele programmeertaal - Haskell
Bij functioneel programmeren wordt rekening gehouden met de patronen. De functionele programmeertalen Haskell, gebruikt de onderstaande methode om de som 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 nummer en ns staat voor de andere nummers
som (n, ns) = n + som ns.
Bovenstaande patronen kunnen worden toegepast om de som te vinden van drie getallen die 3,4,5 zijn.
3 + som [4,5]
3 + (4 + som [5])
3+ 4 + 5 = 12
Er wordt gezegd dat een functie of een uitdrukking bijwerkingen heeft als het een toestand wijzigt die buiten zijn bereik valt of een waarneembare interactie heeft met zijn aanroepende functies naast de terugkerende waarde. Functioneel programmeren minimaliseert deze bijwerkingen. De statusveranderingen zijn niet afhankelijk van de functie-ingangen. Het is handig om het gedrag van het programma te begrijpen. Een nadeel van functioneel programmeren is dat het leren van functioneel programmeren moeilijker is in vergelijking met imperatief programmeren.
Wat is imperatief programmeren?
Imperatief programmeren is een programmeerparadigma dat de uitspraken gebruikt die de status van een programma veranderen. Het richt zich op het beschrijven van hoe een programma werkt. Programmeertalen zoals Java, C en C # zijn noodzakelijke programmeertalen. Het biedt een stapsgewijze procedure voor wat u moet doen. Dwingende programmeertalen bevatten structuren zoals if, else, while, voor lussen, klassen, objecten en functies.
Figuur 02: Voorbeeld van imperatieve programmeertaal - Java
De som van tien getallen is als volgt in Java te vinden. Bij elke iteratie wordt de i-waarde opgeteld bij de som en toegewezen aan de somvariabele. Bij elke iteratie wordt de somwaarde steeds toegevoegd aan de eerder berekende som.
int som = 0;
voor (int i = 0; i <= 10; i ++) {
som = som + i;
}
Imperatief programmeren is gemakkelijk te leren, te begrijpen en te debuggen. Het is gemakkelijk om de programmastatus te vinden vanwege het gebruik van toestandsvariabelen. Enkele nadelen zijn dat het de code lang kan maken en ook de schaalbaarheid kan minimaliseren.
Wat is de overeenkomst tussen functioneel programmeren en imperatief programmeren?
Zowel functioneel programmeren als imperatief programmeren zijn programmeerparadigma's
Wat is het verschil tussen functioneel programmeren en imperatief programmeren?
Diff Artikel Midden voor Tafel
Functioneel versus imperatief programmeren |
|
Functioneel programmeren is een programmeerparadigma dat berekening beschouwt als de evaluatie van wiskundige functies en het wijzigen van status- en veranderlijke gegevens vermijdt. | Imperative Programming is een programmeerparadigma dat statements gebruikt die de status van een programma veranderen. |
Structuren | |
Functioneel programmeren bevat functieaanroepen en functies van hogere orde. | Imperative Programming bevat if, else, while, voor lussen, functies, klassen en objecten. |
Programmeertalen | |
Scala, Haskell en Lisp zijn functionele programmeertalen. | C, C ++, Java zijn noodzakelijke programmeertalen. |
Focus | |
Bij Functioneel Programmeren staat het eindresultaat centraal. | Imperative Programming richt zich op het beschrijven van hoe een programma werkt. |
Eenvoud | |
Functioneel programmeren is moeilijk. | Dwingend programmeren is eenvoudiger. |
Samenvatting - Functioneel programmeren versus imperatief programmeren
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 het wijzigen van status en veranderlijke gegevens vermijdt, terwijl imperatief programmeren de instructies gebruikt die de status van het programma wijzigen.