码迷,mamicode.com
首页 >  
搜索关键字:实用函数编程    ( 121个结果
9.4.1 函数式和命令式类
9.4.1 函数式和命令式类    在类或者类的构造函数的参数值中的 let 绑定,就像我们在其他 F# 代码中看到的 let 绑定一样,也是不可变值;此外,使用 member 关键字声明的属性,创建的是只读属性(只有 getter)。因此,如果类只引用其他不可变类型的值,那么,类也不可变。 比方说,在前面的例子中,我们要允许改变客户的收入,可以有两种方式: ■以纯函数式风格,对象将返回一...
分类:其他好文   时间:2014-12-12 11:42:13    阅读次数:146
9.3.2.1 用关键字 use 编程
9.3.2.1 用关键字 use 编程   我们已经知道,如果用关键字 use 创建值,编译器会自动在声明这个值的函数结尾,插入对 Dispose 方法的调用。这对于资源管理来说是有用的,但还有其他情况,我们需要在两个函数调用之间加包括一段代码。 假设我们希望用不同的颜色输出文本到控制台,然后,再恢复原来的颜色。用传统的方法,我们必须保存原来的颜色,设置新的颜色,发送输出到控制台,再恢复原来...
分类:其他好文   时间:2014-12-11 17:28:44    阅读次数:142
9.3.1 使用 .NET 集合
9.3.1 使用 .NET 集合   到目前为止,虽然我们主要是用F# 内置的列表类型来保存数据集合,在某些情况下,使用其他的 .NET 类型,比如,System.Collections.Generic 命名空间下的 Dictionary 类,也是有用的。这种类型对需要根据键进行快速访问,特别有用,因为提供了类似功能的不可变类型(比如,F# 库中的 Map),效率低下。 需要注意的是,Dic...
分类:Web程序   时间:2014-12-11 15:59:47    阅读次数:152
9.3.2 用 IDisposable 接口清理资源
9.3.2 用 IDisposable 接口清理资源   我们已经使用过几种实现了 IDisposable 接口的类型,比如,Graphics 和 SolidBrush。我们想使代码尽可能易于理解,因此,当使用完对象时,我们就显式调用 Dispose 方法。 C# 中包含了语法糖,以 using 语句的形式,保证了即使语句体内抛出异常,也能调用 Dispose;F# 有相似的结构,用 use...
分类:其他好文   时间:2014-12-11 15:52:46    阅读次数:142
9.2.2 使用接口对象类型
9.2.2 使用接口对象类型   就像记录和差别联合一样,接口类型使用 type 构造来声明。清单 9.8 显示了把以前的检查记录类型,转换为接口类型。   清单 9.8 用接口表示客户检查 (F#) type ClientTest =   abstract Check : Client –> bool   abstract Report : Client -> unit   在...
分类:其他好文   时间:2014-12-11 12:28:30    阅读次数:128
9.2 改进以行为为中心的应用程序
9.2 改进以行为为中心的应用程序   在前面几章,我们已经展示了函数编程的几个基本概念,可以组合起来,获得所需的结果。在讨论构造数据类型的方法时,我们已经看到了这的示例,有元组、函数、差别联合和记录类型。 创建以行为为中心的应用程序,我们使用函数类型表示行为,它可以与其他类型组合。例如,使用记录类型可以在一个值中保存两个相关的函数。...
分类:其他好文   时间:2014-12-10 16:29:54    阅读次数:173
9.1.2 使用类型扩展追加成员
9.1.2 使用类型扩展追加成员    在上一节我们提到过,可以为任何 F# 数据类型添加成员;现在,我们将使用差别联合来演示。这种种方法能够添加成员,而不需要修改任何原始代码。这样,我们将能够保留原始类型和原始的函数声明,不作修改,然后添加成员。 我们将扩展第五章声明 schedule 类型的示例,这个类型表示的事件可以只发生一次,或重复发生,或从不发生。除了数据类型之外,我们还创建了计算...
分类:其他好文   时间:2014-12-10 16:28:30    阅读次数:210
9.2.1 使用保存的函数记录
9.2.1 使用保存的函数记录   使用记录保存函数,是 OCaml 中的常用方法,在 F# 中有所扩展。在看到可能的改进之前,清单 9.7 为第八章的原始解决方案提供了提醒功能。   清单 9.7 用函数的记录检查客户 (F#) type ClientTest =     { Check : Client –> bool       Report : Client-> unit...
分类:其他好文   时间:2014-12-10 16:26:50    阅读次数:136
9.1.1 添加成员到 F# 类型
9.1.1 添加成员到 F# 类型   现在,F# 迭代式开发就派上用场了。交互式调试和测试代码的能力,在开发的早期阶段更重要;随着代码更加完善,就要考虑与其他开发人员共享项目,把通用的操作提供作为成员,可以使用点表示法来调用,变得更加重要。 这就是说,在 F# 中,把数据类型与操作封装一起,通常是开发过程的最后一步。这可以使用成员(members)来完成,可以添加到任何 F# 类型中,行为...
分类:其他好文   时间:2014-12-10 10:50:33    阅读次数:155
9.1 改进以数据为中心的应用程序
9.1 改进以数据为中心的应用程序   我们回顾一下前面章节中讨论的以数据为中心的应用程序一些内容。第七章,我们讨论了以数据为中心的应用程序的关键是数据结构的设计。函数语言对数据结构的构造提供了非常简单、概念明确思考办法。我们已经学习了所有基本的数据类型,元组、差别联合和记录;还学习了声明泛型类型,实现了在不同程序中重用;讨论了 F# 库中的一些类型,如选项类型和函数式列表。 到目前为止,我...
分类:其他好文   时间:2014-12-09 17:56:34    阅读次数:155
121条   上一页 1 ... 7 8 9 10 11 ... 13 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!