Skip to main content
Funktionen werden mit let definiert. Sie nehmen Parameter entgegen und geben ein Ergebnis zurück. In F# bestehen Funktionen aus Eingaben (Parametern) und genau einem Rückgabewert.

Anonyme Funktionen

Anonyme Funktionen (Lambda-Funktionen) haben keinen Namen und werden meist direkt dort verwendet, wo sie gebraucht werden. Sie werden mit fun definiert.
Anonyme Funktionen sind besonders nützlich für kurze, einmalige Operationen.

Higher Order Functions

Higher Order Functions sind Funktionen, die andere Funktionen als Parameter erhalten oder Funktionen zurückgeben. Sie sind ein zentrales Konzept der funktionalen Programmierung.
Typischer Einsatz ist z. B. bei Listenoperationen wie List.map oder List.filter.

Rekursion

Rekursion bedeutet, dass eine Funktion sich selbst aufruft. In F# wird sie häufig anstelle von Schleifen verwendet. Wichtig ist, dass eine Abbruchbedingung definiert wird, damit die Funktion nicht unendlich läuft.
Ohne rec kann sich eine Funktion nicht selbst aufrufen.

Currying

In F# sind Funktionen standardmässig curried. Das bedeutet, dass eine Funktion mehrere Parameter nicht auf einmal, sondern schrittweise entgegennimmt.

Partielle Anwendung

Einer Funktion wird nur ein Teil ihrer Parameter übergeben, wodurch eine neue Funktion entsteht, die die restlichen Parameter erwartet.

Closures

Closures sind Funktionen, die auf Variablen aus ihrem äusseren Kontext zugreifen können, selbst wenn dieser Kontext eigentlich schon beendet ist.
Hier „merkt“ sich die Funktion den Wert von offset.

Callback Funktionen

Callback Funktionen sind Funktionen, die als Argument übergeben werden, um später aufgerufen zu werden. Sie werden häufig verwendet, um Verhalten flexibel zu gestalten.
Auch anonyme Funktionen werden oft als Callbacks verwendet: