码迷,mamicode.com
首页 > 其他好文 > 详细

12.3.2.1 使用高阶函数

时间:2015-01-23 14:43:43      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:f#   函数编程   实用函数编程   高阶函数   

12.3.2.1 使用高阶函数

 

在 F# 中,使用 Seq 模块与 List 相同,而且,我们已经知道,如何在 C# 中使用 LINQ 扩展方法。而在使用列表和序列方面,有一个显著区别:序列是延迟的。直到从返回序列中取出元素时,处理代码才执行,尽管那样,它所做的工作,也只是为了返回结果所需要的。现在,我们用简单的代码段来演示一下:

 

var nums1 =

  nums.Where(n => n%3 == 0)

           .Select(n => n * n)

let nums1 =

  nums |> Seq.filter (fun n -> n%3=0)

            |> Seq.map (fun n -> n * n)

 

当我们运行这段代码时,它不会处理任何元素;它只创建一个表示序列对象,可以用于访问元素;这还说明:nums 值可以是无穷数字序列。如果我们只访问序列的前 10 个元素,代码能够正常运行,因为筛选和映射都是延迟处理数据的。

使用高阶处理函数,经过我们在第六章深入讨论之后,你可能已经熟悉,在整本书中,我们提供了很多例子。在本章,我们将转而讨论表达可选工作流的方法。

12.3.2.1 使用高阶函数

标签:f#   函数编程   实用函数编程   高阶函数   

原文地址:http://blog.csdn.net/hadstj/article/details/43055071

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!