码迷,mamicode.com
首页 >  
搜索关键字:函数编程    ( 392个结果
11.2.2.2 测试列表
11.2.2.2 测试列表   我们将要测试的函数是广义(generalized,是百度翻译的,不知道到底是什么意思)的版本,输出多字组成的名字;不同的是,函数结果返回名字,而不是打印。结果是有两个列表的元组:一个包含多字的名字,另一个包含单个词的名字。在函数的术语中,这个操作称为分区(partitioning),我们使用来自标准的F# 库中的List.partition 函数,很容易就能实现...
分类:其他好文   时间:2015-01-09 17:30:49    阅读次数:153
11.2.2 测试结构相等
11.2.2 测试结构相等   在C# 中,测试复杂数据结构的相等可能非常棘手。如果我们构造一个新的对象,具有相同的属性,使用== 运算符比较两个对象,其结果很可能是false,因为我们比较的是两个不同的实例。 在C# 中,== 运算符可以被重载,Object.Equals 可以重写,但通常只用于值类型或不可变数据结构。比较可变类型的两个不同实例时,识别两者之间的不同,是很重要的,因为数据可...
分类:其他好文   时间:2015-01-09 15:33:26    阅读次数:122
11.2.1.1 在 F# 交互环境中测试程序
11.2.1.1 在 F# 交互环境中测试程序   我们演示自始至终的整个过程,将使用与前一节PrintLongest 和PrintMultiWord相类似两个函数,但这一次,我们用F# 实现。从清单11.7 中可以看到,我们使用交互式控制台的方式略有不同。   清单11.7 使用xUnit.net 交互式测试代码(F# Interactive) > #if INTERACTIVE   ...
分类:其他好文   时间:2015-01-08 09:38:46    阅读次数:154
11.2 测试函数式代码
11.2 测试函数式代码   无论是函数式编程,还是其他范式,都不可能完全消除错误,或阻止在修改现有代码时引入错误,这就是普遍采用单元测试背后的原因之一。好消息是,测试C# 代码时,使用的单元测试技术的大多数也都适用于F# 程序;而且,在许多方面,函数式编程和F# 的测试更容易。   为F# 选择单元测试框架   正如我们在第九章所看到的,可以用F# 写标准的类,因此,任何.NET 的...
分类:其他好文   时间:2015-01-07 18:57:02    阅读次数:115
11.1.2.2 使用不可变数据结构
11.1.2.2 使用不可变数据结构   为了演示了以不可变风格,写相同的代码,但不一定必须使用函数式列表;即使使用标准的 List 类型,我们一样能够避免修改集合。然而,不幸的是,要确保不意外修改列表,可能很难。 处理不允许修改的类型,有更好的方法。可以使用真正不可变类型,比如,第三章的FuncList,或者 .NET Framework 中的 ReadOnlyCollection;即使使...
分类:其他好文   时间:2015-01-07 16:56:10    阅读次数:132
11.1.2.1 使用可变数据结构
11.1.2.1 使用可变数据结构   在清单11.4 中,可以看到两个函数,处理的集合保存了前面示例的地名。这一次,我们使用C#,把地名保存在标准的List 类型中,它是可变的。   清单11.4 处理保存在List 中的地名(C#) List LoadPlaces() {     [1]   returnnew List { "Seattle", "Prague",     "...
分类:其他好文   时间:2015-01-07 13:16:51    阅读次数:131
Underscore.js 1.3.3 源码分析收藏
Underscore是一个提供许多函数编程功能的库,里面包含了你期待(在Prototype.js和Ruby中)的许多功能。但是没有扩展任何内置的Javascript对象,也就是说它没有扩展任何内置对象的原型。它被定位为jQuery和Backbone.js的基础层源码注释转之网上他人之备注,特收藏以后...
分类:Web程序   时间:2015-01-07 10:36:16    阅读次数:238
11.1.1 重用常见的代码块
11.1.1 重用常见的代码块   一个最好的编程实践,就是避免在多个地方重复相同的代码。如果有两个类似程序,就值得考虑把它们合并成一个;新的程序需要有新的参数,描述代码按照不同于原来的路径。 在函数式编程中,我们有一个强大的武器:函数值作为参数值使用的能力,这使得函数或者方法的参数化更容易。为了演示,假设我们有一个关于城市的信息数据库,我们要用数据生成几份报表。 我们先写一个加载数据的函...
分类:其他好文   时间:2015-01-06 15:36:38    阅读次数:241
11.1 重构函数式程序
11.1 重构函数式程序   重构是许多现代开发方法的一个主要部分。在一些语言中,这种技术也支持集成开发环境(IDE),比如,Visual Studio 中的C# 编辑器。大多数重构技术是为面向对象范式而开发的,但是,我们将从函数的角度来讨论。   重构   重构是修改源代码的过程,改善设计,但不改变其含义。重构的目标是使代码更具可读性,在未来更容易修改或扩展,或者改进其结构。一个简单...
分类:其他好文   时间:2015-01-05 11:13:31    阅读次数:126
第十一章 重构和测试函数式程序
第十一章重构和测试函数式程序   本章介绍 ■重构函数式程序 ■使用不变性推理代码 ■为 F# 程序写单元测试 ■使用延迟值缓存结果   这本书的主题之一就是,函数编程理如何使解代码更容易理解,只需要通过阅读就可以;特别是在需要修改陌生程序,或者通过组合现有函数实现行为,或者重构现有的代码时,尤为重要。函数式编程更容易重构,缘于清晰度和模块化:可以改善代码,并且有信心这种改变不会破...
分类:其他好文   时间:2015-01-04 17:15:20    阅读次数:136
392条   上一页 1 ... 28 29 30 31 32 ... 40 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!