Was ist funktionale Programmierung?

funktionelle Programmierung ist ein Programmierparadigma, bei dem die Berechnungsphase die Bewertung von Ausdrücken ist. Einige Merkmale sind die Verwendung von Funktionen höherer Ordnung, Referenztransparenz und fauler Bewertung. Die Vorteile des Programmierstils umfassen, dass Programme leicht zu lesen sind, sehr zuverlässig sind und in Komponenten unterteilt werden können. Nachteile sind, dass Berechnungen langsam sein können und der Stil und die Syntax sich völlig von anderen gängigen Programmierstilen unterscheiden. Der funktionale Programmierstil wird häufiger von Akademikern als von Informatikfachleuten angenommen. Funktionen können innerhalb anderer Funktionen verschachtelt sein, die als Funktionen höherer Ordnung bezeichnet werden, und jede Funktion höherer Ordnung kann in Bausteinfunktionen unterteilt werden, die leicht zu verstehen und zu debuggen. Beispiele für einige Funktionen höherer Ordnung sind Karte und Nest. Die Funktionskarte übernimmt eine Funktion f und die LIst Variablen, zum Beispiel (x, y, z) und geben das Ergebnis in einer Liste an: Karte [f, (x, y, z)] = (f (x), f (y), f (z)). Nest übernimmt die Funktion F, die Variable x und die Anzahl der Iterationen: Nest [f, x, 3] = f (f (x))).

reine funktionale Programmierung nimmt einen Eingang an und gibt einen Ausgang zurück, ohne jemals den Status einer Variablen zu ändern. Mit anderen Worten, eine Funktion mit derselben Eingabe liefert immer die gleichen Ergebnisse, unabhängig davon, was zuvor im Programm aufgetreten ist. Dies wird als Referenztransparenz bezeichnet. Da mathematische Funktionen referenz transparent sind, ist die funktionelle Programmierung für viele Mathematiker, Ingenieure und Wissenschaftler intuitiv.

Die Referenztransparenz von Funktionen bedeutet, dass die Reihenfolge der Funktionsbewertung nicht wichtig ist. Daher müssen Funktionen erst bewertet werden, wenn ihre Ergebnisse benötigt werden, was als faule Bewertung bezeichnet wird. Dies ist in vollem Umfang kontrast mit imperativen Programmieren, bei dem ein Programm mit dem ersten Befehl beginnt und bis zum letzten Befehl durch die Liste läuft. Lazy Evaluation überspringt über Teile des Programms, die logisch nicht folgen oder überflüssig sind, was das Programm automatisch optimiert und die Rechenzeit verkürzen kann.

funktionale Programmierung hat viele Vorteile gegenüber anderen Programmierparadigmen. Funktionen mit klaren Eingängen und Ausgängen sind leicht zu lesen und zu verstehen. Sobald eine Funktion gründlich debuggiert ist, kann sie in anderen Anwendungen zuverlässig verwendet werden. Multicore -Maschinen können möglicherweise Funktionen berechnen, die unabhängig voneinander parallel bewertet werden, wodurch die Leistung von Programmen drastisch verbessert wird.

Leider eignen sich nicht alle Programme für parallele Computer, und die Computerfunktionsprogramme können ziemlich langsam sein. Funktionsprogramme stützen sich stark auf Rekursion, was häufig weniger effizient ist als die Verwendung herkömmlicher Schleifen oder Iterationsmethoden. In der Tat kann funktionelle Programmierung qui seinte ungeschickt und schwer zu lernen, da es anderen häufigeren Paradigmen wie der objektorientierten Programmierung nicht ähnelt.

Akademiker neigen dazu, funktionale Programme zu bevorzugen, da sie eine klare und verständliche Möglichkeit bietet, komplexe Probleme mit der realen Welt zu programmieren. Einige reine Sprachen sind Haskell und Erlang. Mathematica ist auf symbolische Mathematik spezialisiert, R ist auf Statistiken spezialisiert und J ist auf die Finanzanalyse spezialisiert. Multiparadigmsprachen wie Scala und F# unterstützt sowohl funktionale Programmier- als auch andere Programmierstile.

ANDERE SPRACHEN

War dieser Artikel hilfreich? Danke für die Rückmeldung Danke für die Rückmeldung

Wie können wir helfen? Wie können wir helfen?