11.5 第十五章小结
来源:互联网 发布:解释什么是sql注入 编辑:程序博客网 时间:2024/05/18 00:29
11.5 第十五章小结
这一章的主题主要是函数程序的重构,我们已经看到了大量的示例和概念。我们首先讨论了在数学意义上的重构,可以发现,在数学意义上,很容易推导出“代码”,因此,可以看到特定的改变在何时是正确的。由于其根源在数学中,因此,函数式编程通常也有这样的属性。
我们首先探讨了使用函数类型,能够减少代码重复,这是重构的简单情况;然后发现,使用函数式编程,能够方便跟踪代码中的相关性,因此,我们可以看到特定的重构是否是正确的。
接下来,我们重点关注使用 xUnit.net 进行函数式编程的单元测试。学会组合单元测试,以及使用 F# Interactive 进行交互式测试。因此,如果在前面章节你还担心过交互式测试,现在知道,交互式测试只是大型测试的一个部分。此外,我们还演示了不变性能够简化代码的测试,因为我们只需要测试函数能给出预期的结果,而不担心其副作用。
后面,我们把注意力转向了延迟性(laziness)。我们已经知道,延迟性可以用于缓存计算结果,当再次访问这个值时,代码会更有效地运行。只要我们只使用不可变的数据结构,这种修改不会改变程序的结果,所以,可以把它看作是另一种形式的重构。我们还学习了延迟性表达重要的函数概念,比如,无穷的数据类型。事实上,这只是下一章的预告,届时,我们将讨论 C# 的迭代和 F# 的序列表达式,两者都是以更自然的方式来表达序列值。这只是更大概念的一个示例,所以,我们还将看到如何改变或扩展通常的代码含义。
0 0
- 11.5 第十五章小结
- 15.7 第十五章小结
- c++primer第十五章面向对象设计小结-15
- 第十五章
- 第十五章
- 第十五章
- 第十五章
- 第十五章
- 第十五章
- 第十五章
- 【C++】《C++标准程序库》小结第十五章-自定义空间配置器
- JHTP小结_第十五章_文件、流和对象序列化(Files, Streams, and Object Serialization)
- 第十五章 堆栈
- 第十五章 AJAX JQuery
- CPP Primer 第十五章
- 梦里人第十五章
- 第十五章 AJAX JQuery
- 第十五章 嵌入式Linux
- 企业信息系统安全规划的概念
- extjs4 form load combox 不能正确绑定值
- Apache Traffic Server 简介
- MyBatis代码自动生成
- 解决手机端keyup事件不好用
- 11.5 第十五章小结
- LINK:fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- ios MKNetworkKit 的使用
- c#+AE——异常来自 HRESULT:0x80040351
- 5 访问数据库
- 企业信息系统安全规划的作用
- postgres 中的max_connection
- 012 switch 语句
- Linux Centos 下配置JDK,SDK,安装启动Android studio