Lambda 表达式:fun 关键字 (F#)
fun 关键字用于定义 lambda 表达式(即匿名函数)。
fun parameter-list -> expression
备注
parameter-list 通常包括参数的名称,因此,可选择,类型。 通常,parameter-list 可由任何 F# 模式组成。 有关可能的模式的完整列表,请参见模式匹配 (F#)。 列出有效的参数包括以下示例。
// 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 list pattern.
fun head :: tail -> …
expression 是函数体,其中的最后一个表达式生成返回值。 有效 lambda 表达式的示例包括:
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)
使用 Lambda 表达式
当您希望对列表或其他集合执行操作,并希望避免定义函数的额外工作时,lambda 表达式特别有用。 许多 F# 库函数都接受函数值作为参数,并且在这些情况下使用 lambda 表达式可能特别方便。 下面的代码将 lambda 表达式应用于列表的元素。 在本例中,匿名函数为列表的每个元素加 1。
let list = List.map (fun i -> i + 1) [1;2;3]
printfn "%A" list