Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Nyckelordet fun
används för att definiera ett lambda-uttryck, dvs. en anonym funktion.
Syntax
fun parameter-list -> expression
Kommentarer
Parameterlistan består vanligtvis av namn och, om du vill, typer av parametrar. Mer allmänt kan parameterlistan bestå av alla F#-mönster. En fullständig lista över möjliga mönster finns i Mönstermatchning. Listor med giltiga parametrar innehåller följande exempel.
// 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] -> …
Uttrycket är brödtexten i funktionen, vars sista uttryck genererar ett returvärde. Exempel på giltiga lambda-uttryck är följande:
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)
Använda Lambda-uttryck
Lambda-uttryck är särskilt användbara när du vill utföra åtgärder i en lista eller annan samling och vill undvika det extra arbetet med att definiera en funktion. Många F#-biblioteksfunktioner använder funktionsvärden som argument, och det kan vara särskilt praktiskt att använda ett lambda-uttryck i dessa fall. Följande kod tillämpar ett lambda-uttryck på element i en lista. I det här fallet lägger den anonyma funktionen till 1 i varje element i en lista.
let list = List.map (fun i -> i + 1) [ 1; 2; 3 ]
printfn "%A" list