F#教程:匿名函数(Lambda) - 面向对象网 f# 学习 对象 - 面向对象技术开发

面向对象技术开发

会员投稿 投稿指南 站长资讯通告:
您的位置: 首页 > OOP语言 > F# > 正文

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

来源: www.bianceng.cn 阅读:

这回我们要学习的是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就不会有太多陌生感。

Tags:
相关文章列表: