F#教程:高阶函数
所谓高阶函数就是将某个函数作为输入参数或者返回值的函数。从名字上来看挺难理解的,不过从C#的角度来看就是传入或返回delegate之类的。
在我们自己定义高阶函数之前我们还是先学会使用高阶函数。
List中定义了很多高阶函数,这回就学习下其中的几个。首先试下find函数。
let list = [15; 7; 8; 3; 6; 10]
let even n = n % 2 = 0
let x = List.find even list
printfn "%A" x
其中,find的第一个参数是函数,第二个参数是传入的list。将第一个参数指定的函数作用于list的各个元素,如果结果是True,就将该元素作为返回值。这个例子就是寻找第一个偶数。
运行结果是显示8。和.NET Framework的List.Find方法有点相似吧。
不过如果这样写也是可以的:
let list = [15; 7; 8; 3; 6; 10]
let x = List.find (fun n -> n % 2 = 0) list
printfn "%A" x
将lambda表达式作为find的输入参数。我认为这种写法应该是经常使用的。
接着我们看下exists函数。exists函数用来判断 list中是否有符合输入函数所指定条件的元素,如果有就返回True。
let list = [15; 7; 8; 3; 6; 10]
let even n = n % 2 = 0
let x = List.exists even list
printfn "%A" x
接着我们试着使用下map函数。map函数可以使得传入的函数分别作用于 list的各个元素,计算的结果组成新的list返回。
let list = [15; 7; 8; 3; 6; 10]
let x = List.map (fun n -> n % 2 = 0) list
printfn "%A" x相关阅读:
如何调整Linux磁盘分区的大小
Sql 批量替换所有表中内容
详细介绍PHP应用提速面面观
页面内查找
php Ajax乱码
三步搞定 Linux 下的音频转换
正确理解Oracle数据库11g中的XML概念
HTML表格标记教程(43):表头的垂直对齐属性VALIGN
SQL Server 2008案例之CareGroup 医疗组织
判断li是否有样式的js代码
javascript解析xml字符串的函数
JQuery知识:20个jQuery教程+11个jQuery插件
网页和浏览器兼容性问题汇总(draft1)
dedecms获取文档当前栏目所在目录链接URL