F#基础教程 匿名函数
F#提供另一种定义函数的方式,使用关键字fun。通常情况下,使用这个符号不需要给函数一个名称,因此,有时也称其为匿名函数,或称为lambda函数,也可称其为lambda表达式。一个函数不需要名字的想法可能有点奇怪,但如果一个函数仅做为一个参数传递给另一个函数,那么它就不需要自己的名字。下面是一个示例。
#light
let x = (fun x y -> x + y) 1 2
你可以创建一个使用关键字function的匿名函数。创建这种函数的方法不同于使用关键字fun,因为你可以在使用关键字function时使用模式匹配,而无需match test-expression with关键字。它的语法如下:
function
| pattern1 [ when condition ] -> result-expression1
| pattern2 [ when condition ] -> result-expression2
| ...
关键字fun通常是首选,因为它定义的匿名函数更紧凑,你可以在浏览库源代码时看到更多的例子。
let x1 = (function x -> function y -> x + y) 1 2
let x2 = (function (x, y) -> x + y) (1, 2)