Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The fun keyword is used to define a lambda expression, that is, an anonymous function.
fun parameter-list -> expression
Remarks
The parameter-list consists of names and, optionally, types of parameters. Examples of valid parameter lists include the following:
fun a b c -> ...
fun (a: int) b c -> ...
fun (a : int) (b : string) (c:float) -> ...
The parameter-list can be composed of any F# patterns. For a full list of possible patterns, see Pattern Matching (F#).
The expression is the body of the function, the last expression of which generates a return value. Examples of valid lambda expressions include the following:
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)
Using Lambda Expressions
Lambda expressions are especially useful when you want to perform operations on a list or other collection and want to avoid the extra work of defining a function. Many F# library functions take function values as arguments, and it can be especially convenient to use a lambda expression in those cases. The following code applies a lambda expression to elements of a list. In this case, the anonymous function adds 1 to every element of a list.
let list = List.map (fun i -> i + 1) [1;2;3]
printfn "%A" list