F#教程:匿名函数(Lambda)


这回我们要学习的是Lambda表达式。F#和C#一样也有匿名函数。不过感觉将匿名函数称为Lambda更好些。

  试着写些代码吧:

let add = fun x y -> x + y
printfn "%A" (add 1 3)

  这里我们定义了add函数。这个定义使用了匿名函数(取出x,y两个参数,并将x+y的结果返回)。fun就是匿名函数的关键字。

  之前有过的函数定义是:

  let add x y = x + y

  这是一种省略形式。不同的只是参数是否在lambda表达式中。

  从C#的经验来看可以将函数作为其他函数的参数传入的。

let add = fun x y -> x + y 
let hoge func = 
    let a = func 1 10 
    printfn "%A" a 
hoge add  // 将add作为参数传入hoge函数中

  确实可以的啊,显示结果是11。

  当然,还可以试着将lambda表达式直接传入到之前的函数中。

let hoge func = 
    let a = func 1 10 
    printfn "%A" a 
hoge (fun x y -> x + y)  // 直接传入lambda表达式

  C#3.0中就普遍使用了lambda表达式,这也使得在F#使用lambda就不会有太多陌生感。


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3