Das Hauptunterschied zwischen funktionaler Programmierung und imperativer Programmierung ist, dass die Die funktionale Programmierung betrachtet die Berechnungen als mathematische Funktionen und vermeidet das Ändern von Status und veränderlichen Daten, während die imperative Programmierung die Anweisungen verwendet, die den Status des Programms ändern.
Ein Programmierparadigma bietet einen Stil zum Erstellen der Struktur und der Elemente eines Computerprogramms. Die Programmierparadigmen helfen, Programmiersprachen anhand ihrer Merkmale zu klassifizieren. Eine Programmiersprache kann weitere Paradigmen beeinflussen. Im objektorientierten Paradigma wird das Programm anhand von Objekten strukturiert, und die Objekte übergeben Meldungen mithilfe von Methoden. Die Logikprogrammierung kann Berechnungen ausschließlich in mathematischer Logik ausdrücken. Zwei weitere Programmierparadigmen sind funktionale Programmierung und imperative Programmierung. Die funktionale Programmierung ermöglicht das Ausdrücken von Berechnungen als Auswertung mathematischer Funktionen. Imperative Programmierung enthält Anweisungen, die den Speicherstatus explizit ändern. Dieser Artikel beschreibt den Unterschied zwischen funktionaler Programmierung und zwingender Programmierung.
1. Übersicht und Schlüsseldifferenz
2. Was ist funktionale Programmierung?
3. Was ist Imperative Programmierung?
4. Ähnlichkeiten zwischen funktionaler Programmierung und imperativer Programmierung
5. Side-by-Side-Vergleich - Funktionale Programmierung vs. Imperative Programmierung in Tabellenform
6. Zusammenfassung
Funktionale Programmierung basiert auf Mathematik. Das Schlüsselprinzip der funktionalen Programmierung besteht darin, dass alle Berechnungen als eine Kombination separater mathematischer Funktionen betrachtet werden. Eine mathematische Funktion bildet Eingaben auf Ausgaben ab. Angenommen, es gibt eine Funktion namens f (x) = x * x. Der x-Wert 1 wird dem Ausgang 1 zugeordnet. Der x-Wert 2 wird dem Ausgang 4 zugeordnet. Der x-Wert 3 wird dem Ausgang 9 usw. zugeordnet.
Abbildung 01: Beispiel für eine funktionale Programmiersprache - Haskell
Bei der funktionalen Programmierung werden die Muster berücksichtigt. Die funktionalen Programmiersprachen Haskell verwendet die untenstehende Methode, um die Summe der Zahlen zu finden.
Die Summenfunktion hat ganzzahlige Werte und das Ergebnis wird auch eine ganze Zahl sein. Es kann als Summe geschrieben werden: [int] -> int. Die Summation kann durch Befolgen der folgenden Muster durchgeführt werden.
sum [n] = n, die Summe einer Zahl ist die Zahl selbst.
Wenn es eine Liste mit Zahlen gibt, kann diese wie folgt geschrieben werden. Das n steht für die erste Zahl und ns für die anderen Zahlen
Summe (n, ns) = n + Summe ns.
Obige Muster können angewendet werden, um die Summe von drei Zahlen zu finden, die 3,4,5 sind.
3 + Summe [4,5]
3 + (4 + Summe [5])
3 + 4 + 5 = 12
Eine Funktion oder ein Ausdruck hat Nebenwirkungen, wenn sie einen Zustand außerhalb ihres Gültigkeitsbereichs ändert oder eine beobachtbare Interaktion mit den aufrufenden Funktionen neben dem Rückgabewert hat. Funktionale Programmierung minimiert diese Nebeneffekte. Die Zustandsänderungen hängen nicht von den Funktionseingängen ab. Dies ist hilfreich, wenn Sie das Verhalten des Programms verstehen. Ein Nachteil der funktionalen Programmierung besteht darin, dass das Erlernen der funktionalen Programmierung schwieriger ist als die zwingende Programmierung.
Imperative Programmierung ist ein Programmierparadigma, das die Anweisungen verwendet, die den Status eines Programms ändern. Im Mittelpunkt steht die Beschreibung der Funktionsweise eines Programms. Programmiersprachen wie Java, C und C # sind zwingende Programmiersprachen. Es bietet eine schrittweise Anleitung, was zu tun ist. Imperative Programmiersprachen enthalten Strukturen wie if, else während für Schleifen, Klassen, Objekte und Funktionen.
Abbildung 02: Beispiel für eine Programmiersprache Imperative - Java
Die Summe von zehn Zahlen kann in Java wie folgt gefunden werden. Bei jeder Iteration wird der i-Wert zur Summe addiert und der Summenvariablen zugewiesen. In jeder Iteration addiert sich der Summenwert zu der zuvor berechneten Summe.
int sum = 0;
für (int i = 0; i< =10; i++)
sum = sum + i;
Imperative Programmierung ist leicht zu erlernen, zu verstehen und zu debuggen. Es ist leicht, den Programmstatus aufgrund der Verwendung von Statusvariablen zu finden. Einige Nachteile bestehen darin, dass der Code länger werden kann und die Skalierbarkeit minimiert werden kann.
Funktionale vs. Imperative Programmierung | |
Functional Programming ist ein Programmierparadigma, das Berechnungen als Bewertung mathematischer Funktionen betrachtet und das Ändern von Status und veränderlichen Daten vermeidet. | Imperative Programmierung ist ein Programmierparadigma, das Anweisungen verwendet, die den Status eines Programms ändern. |
Strukturen | |
Die Funktionsprogrammierung enthält Funktionsaufrufe und Funktionen höherer Ordnung. | Imperative Programmierung enthält if, else, while für Schleifen, Funktionen, Klassen und Objekte. |
Programmiersprachen | |
Scala, Haskell und Lisp sind funktionale Programmiersprachen. | C, C ++, Java sind zwingende Programmiersprachen. |
Fokus | |
Die Funktionale Programmierung konzentriert sich auf das Endergebnis. | Imperative Programmierung konzentriert sich auf die Beschreibung der Funktionsweise eines Programms. |
Einfachheit | |
Funktionale Programmierung ist schwer. | Imperative Programmierung ist einfacher. |
Ein Programmierparadigma bietet einen Stil zum Erstellen der Struktur und der Elemente eines Computerprogramms. Funktionale Programmierung und Imperative Programmierung sind zwei davon. Der Unterschied zwischen funktionaler Programmierung und zwingender Programmierung besteht darin, dass die funktionale Programmierung die Berechnungen als mathematische Funktionen betrachtet und Statusänderungen und veränderliche Daten vermeidet, während imperative Programmierung die Anweisungen verwendet, die den Status des Programms ändern.
1. „Imperative Programmierung“. Wikipedia, Wikimedia Foundation, 28. März 2018. Hier verfügbar
2. „Funktionale 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'auf Linux-Screenshots (CC BY 2.0) über Flickr