Der Schlüsselunterschied Zwischen funktionaler Programmierung und imperativer Programmierung befindet sich die Die funktionale Programmierung berücksichtigt die Berechnungen als mathematische Funktionen und vermeidet es, Status- und Veränderliche Daten zu ändern, während die imperative Programmierung die Aussagen verwendet, die den Status des Programms ändern.
Ein Programmierparadigma bietet einen Stil, der Struktur und Elemente eines Computerprogramms aufbaut. Die Programmierparadigmen helfen dabei, Programmiersprachen basierend auf ihren Funktionen zu klassifizieren. Eine Programmiersprache könnte mehr Paradigmen beeinflussen. In objektorientiertem Paradigma wird das Programm mit Objekten strukturiert, und die Objekte übergeben Nachrichten mithilfe von Methoden. Die logische Programmierung kann Berechnungen ausschließlich in Bezug auf die mathematische Logik ausdrücken. Weitere zwei Programmierparadigmen sind funktionelle Programmier- und Imperativprogrammierung. Funktionelle Programmierung ermöglicht das Ausdrücken von Berechnungen als Bewertung mathematischer Funktionen. Imperative Programmierung liefert Aussagen, die den Zustand des Gedächtnisses explizit verändern. In diesem Artikel wird der Unterschied zwischen funktionaler Programmierung und imperativer Programmierung erörtert.
1. Überblick und wichtiger Unterschied
2. Was ist funktionale Programmierung
3. Was ist eine imperative Programmierung
4. Ähnlichkeiten zwischen funktionaler Programmierung und imperativer Programmierung
5. Seite für Nebenvergleich - funktionelle Programmierung gegen imperative Programmierung in tabellarischer Form
6. Zusammenfassung
Die funktionale Programmierung basiert auf Mathematik. Das Hauptprinzip für die funktionale Programmierung besteht darin, dass die gesamte Berechnung als Kombination separater mathematischer Funktionen angesehen wird. Eine mathematische Funktion bildet Eingänge für Ausgänge ab. Angenommen, es gibt eine Funktion namens F (x) = x*x. Der x -Wert 1 wird der Ausgabe 1 zugeordnet. Der x -Wert 2 wird auf die Ausgabe 4 abgebildet. Der x -Wert 3 wird auf die Ausgabe 9 und so weiter zugeordnet.
Abbildung 01: Beispiel für die funktionale Programmiersprache - Haskell
Bei der funktionellen Programmierung werden die Muster berücksichtigt. Die funktionalen Programmiersprachen Haskell verwendet die folgende Methode, um die Zusammenfassung der Zahlen zu ermitteln.
Die Summenfunktion hat ganzzahlige Werte, und das Ergebnis wird auch eine Ganzzahl sein. Es kann als Summe geschrieben werden: [int] -> int. Die Zusammenfassung kann durch die Befolgung der folgenden Muster erfolgen.
sum [n] = n, die Summe einer Zahl ist die Zahl selbst.
Wenn es eine Liste von Zahlen gibt, kann sie wie folgt geschrieben werden. Das N repräsentiert die erste Zahl, und NS repräsentiert die anderen Zahlen
sum (n, ns) = n + sum ns.
Die oben genannten Muster können angewendet werden, um die Summe von drei Zahlen zu finden, die 3,4,5 sind.
3 + sum [4,5]
3 + (4 + sum [5])
3+ 4 + 5 = 12
Eine Funktion oder ein Ausdruck sollen Nebenwirkungen haben, wenn sie einen Zustand außerhalb seines Geltungsbereichs verändert oder eine beobachtbare Wechselwirkung mit seinen aufrufenden Funktionen neben dem Rückgabewert hat. Funktionelle Programmierung minimiert diese Nebenwirkungen. Die Zustandsänderungen hängen nicht von den Funktionseingängen ab. Es ist nützlich, wenn Sie das Verhalten des Programms verstehen. Ein Nachteil der funktionalen Programmierung ist, dass das Lernen funktioneller Programmierung im Vergleich zur imperativen Programmierung schwieriger ist.
Imperative Programmierung ist ein Programmierparadigma, das die Aussagen verwendet, die den Zustand eines Programms ändern. Es konzentriert sich darauf, zu beschreiben, wie ein Programm funktioniert. Programmiersprachen wie Java, C und C# sind imperative Programmiersprachen. Es bietet eine Schritt -für -Schritt -Prozedur darüber, was zu tun ist. Imperative Programmiersprachen enthalten Strukturen wie wenn sonst, während für Schleifen, Klassen, Objekte und Funktionen.
Abbildung 02: Beispiel für eine imperative Programmiersprache - Java
Die Zusammenfassung von zehn Zahlen finden Sie in Java wie folgt. In jeder Iteration wird der I -Wert zur Summe hinzugefügt und der Summenvariable zugeordnet. In jeder Iteration fügt der Summenwert die zuvor berechnete Summe weiter hinzu.
int sum = 0;
für (int i = 0; i< =10; i++)
sum = sum + i;
Imperative Programmierung ist leicht zu lernen, zu verstehen und zu debuggen. Es ist leicht, den Programmstatus zu finden, da staatliche Variablen verwendet werden. Einige Nachteile sind, dass der Code langwierig werden und auch die Skalierbarkeit minimieren kann.
Funktionale vs imperative Programmierung | |
Funktionelle Programmierung ist ein Programmierparadigma, das die Berechnung als die Bewertung mathematischer Funktionen betrachtet und sich verändert und den Zustand und die veränderlichen Daten verändert. | Imperative Programmierung ist ein Programmierparadigma, das Aussagen verwendet, die den Zustand eines Programms ändern. |
Strukturen | |
Die funktionale Programmierung enthält Funktionsaufrufe und Funktionen höherer Ordnung. | Imperativ. |
Programmiersprachen | |
Scala, Haskell und Lisp sind funktionale Programmiersprachen. | C, C ++, Java sind imperative Programmiersprachen. |
Fokus | |
Die funktionale Programmierung konzentriert sich auf das Endergebnis. | Imperative Programmierung konzentriert sich auf die Beschreibung der Funktionsweise eines Programms. |
Einfachheit | |
Die funktionale Programmierung ist schwierig. | Imperative Programmierung ist einfacher. |
Ein Programmierparadigma bietet einen Stil, der Struktur und Elemente eines Computerprogramms aufbaut. Funktionelle Programmierung und imperative Programmierung sind zwei davon. Der Unterschied zwischen funktionaler Programmierung und imperativer Programmierung besteht darin, dass die funktionelle Programmierung die Berechnungen als mathematische Funktionen berücksichtigt und sich veränderte Zustand und veränderliche Daten vermeiden.
1.„Imperative Programmierung.Wikipedia, Wikimedia Foundation, 28. März. 2018. Hier verfügbar
2.„Funktionelle Programmierung.Wikipedia, Wikimedia Foundation, 28. März. 2018. Hier verfügbar
3.Computerphile. YouTube, YouTube, 30. August. 2013. Hier verfügbar
1.'Haskell Logo'by Haskell1965 - eigene Arbeit, (CC BY -SA 3.0) über Commons Wikimedia
2.'14485179234'By Linux Screenshots (CC von 2.0) über Flickr