Hauptunterschied - Funktionale Programmierung vs. imperative Programmierung
Der Hauptunterschied zwischen funktionaler Programmierung und imperativer Programmierung besteht darin, dass die funktionale Programmierung die Berechnungen als mathematische Funktionen betrachtet und eine Änderung des Zustands und veränderlicher Daten vermeidet, während die imperative Programmierung die Anweisungen verwendet, die den Programmzustand ändern.
Ein Programmierparadigma bietet einen Stil zum Erstellen der Struktur und der Elemente eines Computerprogramms. Die Programmierparadigmen helfen dabei, Programmiersprachen anhand ihrer Merkmale zu klassifizieren. Eine Programmiersprache könnte mehr Paradigmen beeinflussen. Im objektorientierten Paradigma ist das Programm unter Verwendung von Objekten strukturiert, und die Objekte übergeben Nachrichten unter Verwendung von Methoden. Die Logikprogrammierung kann die Berechnung ausschließlich in Form einer mathematischen Logik ausdrücken. Weitere zwei Programmierparadigmen sind funktionale Programmierung und imperative Programmierung. Die funktionale Programmierung ermöglicht das Ausdrücken von Berechnungen als Auswertung mathematischer Funktionen. Die imperative Programmierung liefert Anweisungen, die den Status des Speichers explizit ändern. Dieser Artikel beschreibt den Unterschied zwischen funktionaler Programmierung und zwingender Programmierung.
INHALT
1. Überblick und Hauptunterschied
2. Was ist funktionale Programmierung
? 3. Was ist imperative Programmierung?
4. Ähnlichkeiten zwischen funktionaler Programmierung und imperativer Programmierung.
5. Vergleich nebeneinander - Funktionale Programmierung und imperative Programmierung in tabellarischer Form.
6. Zusammenfassung
Was ist funktionale Programmierung?
Die funktionale Programmierung basiert auf Mathematik. Das Schlüsselprinzip der funktionalen Programmierung besteht darin, dass die gesamte Berechnung als eine Kombination separater mathematischer Funktionen betrachtet wird. Eine mathematische Funktion ordnet Eingaben Ausgängen zu. 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 zugeordnet und so weiter.
Abbildung 01: Beispiel einer funktionalen Programmiersprache - Haskell
Bei der funktionalen Programmierung werden die Muster berücksichtigt. Die funktionalen Programmiersprachen Haskell verwenden die folgende Methode, um die Summe der Zahlen zu ermitteln.
Die Summenfunktion hat ganzzahlige Werte, und das Ergebnis ist auch eine ganze Zahl. Es kann als Summe geschrieben werden: [int] -> int. Die Summierung kann durch Befolgen der folgenden Muster erfolgen.
sum [n] = n, die Summe einer Zahl ist die Zahl selbst.
Wenn es eine Liste von 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.
Die obigen 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 neben dem Rückgabewert eine beobachtbare Interaktion mit ihren aufrufenden Funktionen aufweist. Die funktionale Programmierung minimiert diese Nebenwirkungen. 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 im Vergleich zur imperativen Programmierung schwieriger ist.
Was ist imperative Programmierung?
Imperative Programmierung ist ein Programmierparadigma, das die Anweisungen verwendet, die den Status eines Programms ändern. Es konzentriert sich auf die Beschreibung der Funktionsweise eines Programms. Programmiersprachen wie Java, C und C # sind wichtige Programmiersprachen. Es enthält eine schrittweise Anleitung, was zu tun ist. Imperative Programmiersprachen enthalten Strukturen wie if, else, while für Schleifen, Klassen, Objekte und Funktionen.
Abbildung 02: Beispiel einer imperativen Programmiersprache - Java
Die Summe von zehn Zahlen kann in Java wie folgt gefunden werden. In jeder Iteration wird der i-Wert zur Summe addiert und der Summenvariablen zugewiesen. In jeder Iteration addiert sich der Summenwert weiter zur zuvor berechneten Summe.
int sum = 0;
für (int i = 0; i <= 10; i ++) {
Summe = Summe + i;
}}
Imperative Programmierung ist leicht zu erlernen, zu verstehen und zu debuggen. Aufgrund der Verwendung von Statusvariablen ist es einfach, den Programmstatus zu finden. Einige Nachteile sind, dass es den Code langwierig machen und auch die Skalierbarkeit minimieren kann.
Was ist die Ähnlichkeit zwischen funktionaler Programmierung und imperativer Programmierung?
Sowohl die funktionale Programmierung als auch die imperative Programmierung sind Programmierparadigmen
Was ist der Unterschied zwischen funktionaler Programmierung und imperativer Programmierung?
Diff Artikel Mitte vor Tabelle
Funktionale vs imperative Programmierung |
|
Die funktionale Programmierung ist ein Programmierparadigma, das die Berechnung als Bewertung mathematischer Funktionen betrachtet und das Ändern von Zustands- und veränderlichen Daten vermeidet. | Imperative Programmierung ist ein Programmierparadigma, das Anweisungen verwendet, die den Status eines Programms ändern. |
Strukturen | |
Die funktionale Programmierung 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 wichtige 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 schwierig. | Imperative Programmierung ist einfacher. |
Zusammenfassung - Funktionale Programmierung vs. imperative Programmierung
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 imperativer Programmierung besteht darin, dass die funktionale Programmierung die Berechnungen als mathematische Funktionen betrachtet und eine Änderung des Zustands und veränderlicher Daten vermeidet, während die imperative Programmierung die Anweisungen verwendet, die den Programmzustand ändern.