6.3.1 处理计划列表
来源:互联网 发布:omnigraffle mac 编辑:程序博客网 时间:2024/06/06 04:07
6.3.1 处理计划列表
在前面的示例中,因为我们想要打印新的计划,因此,使用了命令式的 for 循环;如果想要创建包含新的计划列表,可以使用 List.map 函数,就像这样:
let newSchedules =
List.map(fun s –>
s |> mapSchedule (fun d -> d.AddDays(7.0))
)schedules
List.map 函数的第一个参数是函数,通过使用原来的计划,获得一个新的计划值。在此示例中,我们计算出一个新的计划,并将它作为函数的结果返回。前面的代码可以通过使用管道和散函数应用来简化,就像这样:
let newSchedules =
schedules|> List.map (mapSchedule (fun d -> d.AddDays(7.0)))
当我们为函数 mapSchedule 指定第一个参数(用于计算日期的函数),就得到类型为 Schedule –> Schedule 的函数,这正是 List.map 操作需要的第一个参数值,因此,不必显式写 lambda 函数。这个示例还演示了很多高阶函数把原始值作为最后一个参数值的原因,即,在处理列表值时,可以同时使用管道和散[函数]应用。
还有一种方法,是使用序列表达式(sequence expressions),同样简洁,但是,对于新手来说,可能更具可读性。我们会在第十二章讨论序列表达式,现在,要看看 C# 是如何实现相同功能的。
0 0
- 6.3.1 处理计划列表
- 6.3.1 处理计划列表
- 6.3 处理计划
- 6.3 处理计划
- 计划列表
- 计划文章列表
- 计划读书列表
- 2016的计划列表
- 2017的计划列表
- 源码学习列表(计划
- 6.3.2 在 C# 中处理计划
- 6.3.2 在 C# 中处理计划
- 3.4.1 处理数字列表
- 3.4.1 处理数字列表
- 【训练计划】ACM算法列表
- 系统程序员成长计划-文本处理(一)状态机(1)
- 进度计划风险的完整列表
- 已读或计划读书籍列表
- JSON格式查看器JsonView
- 自定义View之 CascadeLayout
- Java中用split()方法分割IP地址
- JAVA中的final关键字
- 记录一下这一个星期的面试经历吧
- 6.3.1 处理计划列表
- 对思归者的建议
- oracle存储过程中使用Ref Cursor强类型游标返回结果集
- [LeetCode]Search a 2D Matrix
- android移动视频开发秘籍
- Dedecms 清空栏目后,新建ID不从1开始的解决方法
- 第三篇:Hibernate开发流程和步骤
- 书单:微信之父张小龙的产品经理书单
- 在Storyboard中使用自定义的segue来实现动画过渡