Lambda-Ausdrücke: Das fun-Schlüsselwort (F#)

Die fun-Schlüsselwort wird verwendet, um einen Lambdaausdruck, d. h. eine anonyme Funktion, zu definieren.

Syntax

fun parameter-list -> expression

Bemerkungen

parameter-list besteht in der Regel aus Namen und optional Parametertypen. Allgemeiner kann parameter-list aus beliebigen F#-Mustern bestehen. Eine vollständige Liste möglicher Muster finden Sie unter Musterabgleich. Listen gültiger Parameter enthalten die folgenden Beispiele.

// Lambda expressions with parameter lists.
fun a b c -> ...
fun (a: int) b c -> ...
fun (a : int) (b : string) (c:float) -> ...

// A lambda expression with a tuple pattern.
fun (a, b) -> …

// A lambda expression with a cons pattern.
// (note that this will generate an incomplete pattern match warning)
fun (head :: tail) -> …

// A lambda expression with a list pattern.
// (note that this will generate an incomplete pattern match warning)
fun [_; rest] -> …

Der Ausdruck ist der Körper der Funktion, deren letzter Ausdruck einen Rückgabewert generiert. Es folgen Beispiele für gültige Lambdaausdrücke:

fun x -> x + 1
fun a b c -> printfn "%A %A %A" a b c
fun (a: int) (b: int) (c: int) -> a + b * c
fun x y -> let swap (a, b) = (b, a) in swap (x, y)

Verwenden von Lambdaausdrücken

Lamdaausdrücke sind besonders nützlich, wenn Sie Vorgänge auf eine Liste oder eine andere Sammlung anwenden und den zusätzlichen Aufwand einer Funktionsdefinition vermeiden möchten. Viele F#-Bibliotheksfunktionen verwenden Funktionswerte als Argumente, und in diesen Fällen kann es besonders praktisch sein, einen Lambdaausdruck zu verwenden. Der folgende Code wendet einen Lambdaausdruck auf Elemente einer Liste an. In diesem Fall fügt die anonyme Funktion jedem Element einer Liste 1 hinzu.

let list = List.map (fun i -> i + 1) [ 1; 2; 3 ]
printfn "%A" list

Siehe auch