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)

posted @ 2011-11-23 10:46  银河系漫游指南  阅读(371)  评论(0编辑  收藏  举报