Was ist funktionale Programmierung?

Die funktionale Programmierung ist ein programmierenparadigma, in dem die Unterseite der Berechnung die Auswertung von Ausdrücken ist. Einige Eigenschaften sind der Gebrauch von höherer Ordnungfunktionen, Verweistransparent und faule Auswertung. Die Vorteile der programmierenart umfassen, dass Programme einfach zu lesen sind, sind sehr zuverlässig und können in Bestandteile gebrochen werden. Nachteile sind, dass Berechnung langsam sein kann und die Art und die Syntax zu anderen allgemeinen programmierenarten vollständig unterschiedlich sind. Die Art der funktionalen Programmierung umfaßt häufig durch Akademiker als durch Informatikfachleute.

Da der Name vorschlägt, sind Funktionen ein grundlegendes Teil dieses programmierenparadigmas. Funktionen können innerhalb anderer Funktionen genistet werden, genannt höherer Ordnungfunktionen, und jede höherer Ordnungfunktion kann in Bausteinfunktionen aufgegliedert werden, die einfach zu verstehen und auszuprüfen sind. Beispiele einiger höherer Ordnungfunktionen sind Diagramm und Nest. Das Funktion Diagramm nimmt eine Funktion F und die Liste von Variablen, zum Beispiel (x, y, z) und gibt das Resultat in einer Liste: Diagramm [F, (x, y, z)] = (F (x), F (y), F (z)). Nest nimmt die Funktion F, das variable x und die Zahl von den Wiederholungen: Nest [F, x, 3] = F (F (F (x))).

Die reine funktionale Programmierung nimmt einen Eingang und zurückbringt einen Ausgang ohne ständig wechselndes ein variable’s Zustand lndes. Das heißt, gibt eine Funktion mit dem gleichen Eingang immer die gleichen Resultate unabhängig davon, was vorher im Programm aufgetreten. Dieses genannt Verweistransparent. Da mathematische Funktionen referentially transparent sind, ist die funktionale Programmierung zu vielen Mathematikern, zu Ingenieuren und zu Wissenschaftlern intuitiv.

Das Verweistransparent von Funktionen bedeutet, dass der Auftrag der Funktionsauswertung nicht wichtig ist. Folglich brauchen Funktionen nicht ausgewertet zu werden, bis ihre Resultate erforderlich sind, das faule Auswertung genannt. Dieses ist im kompletten Kontrast mit der zwingenden Programmierung, wo ein Programm mit dem ersten Befehl anfängt und durch die Liste bis den letzten Befehl läuft. Faule Auswertung überspringt über Teilen des Programms, die nicht logisch folgen oder überflüssig sind, das automatisch das Programm optimiert und rechnenzeit verringern kann.

Die funktionale Programmierung hat viele Vorteile über anderen programmierenparadigmen. Funktionen mit freien Eingängen und Ausgängen sind einfach zu lesen und zu verstehen. Sobald eine Funktion gänzlich ausgeprüft, kann sie in anderen Anwendungen zuverlässig verwendet werden. Mehradermaschinen können in der Lage sein, die Funktionen zu berechnen, die unabhängig parallel ausgewertet und die Leistung von Programmen drastisch verbessern.

Leider verleihen nicht alle Programme zur parallelen Datenverarbeitung, und rechnende Funktionsprogramme können ziemlich langsam sein. Funktionsprogramme beruhen schwer auf Rekursion, die häufig das using traditionelle Schleifen oder Iterationsmethoden weniger leistungsfähig ist. Tatsächlich kann die funktionale Programmierung ziemlich unbeholfen und schwierig sein zu erlernen, da es nicht anderen allgemeineren Paradigmen wie objektorientierte Programmierung ähnelt.

Akademiker neigen, die funktionale Programmierung zu bevorzugen, da es eine freie und verständliche Weise liefert, komplizierte reale Weltprobleme zu programmieren. Einige reine Sprachen sind Haskell und Erlang. Mathematica spezialisiert auf symbolische Mathematik, spezialisiert R auf Statistiken und J spezialisiert auf Finanzanalyse. Multiparadigmasprachen wie Scala und F# stützt die funktionale Programmierung und andere programmierenarten.