9.2.1 使用保存的函数记录
来源:互联网 发布:星巢网络c5 编辑:程序博客网 时间:2024/06/06 02:24
9.2.1 使用保存的函数记录
使用记录保存函数,是 OCaml 中的常用方法,在 F# 中有所扩展。在看到可能的改进之前,清单 9.7 为第八章的原始解决方案提供了提醒功能。
清单 9.7 用函数的记录检查客户 (F#)
type ClientTest = <-- 表示检查
{ Check : Client –> bool
Report : Client-> unit }
let testCriminal(client) =client.CriminalRecord = true
let reportCriminal(client) =
printfn "'%s' has a criminalrecord!" client.Name
let tests =
[ { Check = testCriminal | 创建记录值
Report= reportCriminal }; |
(* more tests...*) ]
代码首先创建一个记录类型,指定用函数类型,构成检查和报告部分。然后,创建两个函数,组合起来构成一个记录类型的值。使用函数的记录在概念上很简单,很容易将使用单独函数的代码,重构成使用记录的设计。如果我们要把这段代码改变成更加传统的 .NET 版本的话,可能不止一步。
我们前面提到过,函数类型类似于只有一个方法的接口。包含两个函数的记录,与有两个方法的接口非常相似,就毫不奇怪了。在 C# 中,我们几乎可以肯定使用接口来实现这种设计,F# 也可以这样做。
类似于成员,在创建健壮的应用程序,或可重复使用的 .NET 库时,接口更加重要。如果我们使用接口,不需要提供应该如何实现,因此,在写应用程序时,给我们很大的灵活性。在这一章的后面,我们将讨论在 F# 中实现接口的方法。开发能够从 C# 中调用的 .NET 库时,接口也非常有用。如果我们在 F# 中声明接口,C# 代码将把它看作是普通的接口。另一方面,带有函数作为成员的 F# 记录类型,看起来像有属性的类,有一些难以使用的类型。我们看一下如何能把记录类型改编成接口,但仍然以 F# 中自然的方式使用它。
- 9.2.1 使用保存的函数记录
- 使用cookie保存用户的浏览记录
- Java中Preference 类的使用,保存上一次记录
- 如何使用Cocoa保存XML格式的记录文件
- 使用doskey来保存cmd里面的记录
- 记录mysql中的DATE_FORMAT()函数的使用
- 保存的各函数
- 使用ListView保存历史输入记录
- 使用Cookie实现保存商品浏览记录
- 使用cookie保存访问商品记录
- 使用ListView保存历史输入记录
- 8.3.1 函数的记录
- 8.3.1 函数的记录
- 使用jsp实现对商品的浏览与保存浏览过的商品记录
- 使用url读取csdn的博客访问量并将记录保存到本地
- 关于ext中使用 Ext.grid.CheckboxSelectionModel作为选择框如何保存选中记录的解决方法。
- 对sklearn训练结果进行保存(joblib或pickle或cPickle的使用问题记录)
- 实现通用的保存记录的方法
- 关于染化料只能取一种物料,不能取助剂的修复
- 第十六周OJ 项目 Problem C: 相同的数字!
- 把 Nginx 创建为 Windows 的一个服务
- 直方图均衡化
- textarea标签中resize缩放属性的设置
- 9.2.1 使用保存的函数记录
- iOS应用国际化教程
- Hadoop HDFS之SequenceFile和MapFile
- Spring+redis,spring-data-redis使用
- Hive函数大全
- effective c++条款32~40“继承与面向对象设计”整理
- 昆山网络公司:你的网站就是这样被百度抛弃的
- 第五章 数组(1):数组声明和初始化
- 关于block的copy和循环引用问题