12.5.1 声明计算类型
来源:互联网 发布:网络不通怎么排查 编辑:程序博客网 时间:2024/05/24 01:35
12.5.1 声明计算类型
在这个示例中,计算的类型(在 Haskell 术语中的单子类型)称为 ValueWrapper<T>,它只是存储泛型类型参数T 的值,并不会为类型增加任何其他功能。这就是说,计算只处理标准值,但是,我们能够用 C# 中的查询表达式, F# 中的计算表达式,写代码(来增加功能)。
清单 12.17 显示了在 C# 和 F# 中的类型声明。在 C# 中,我们创建简单的类,在 F# 中,将使用一个简单的只有一种情况的差别联合。
清单 12.17 C# 和 F# 中的计算值
// C# 的类声明
class ValueWrapper<T> {
public ValueWrapper(T value) {
this.Value = value;
}
public T Value { get; private set; } [1]
}
// F# 的差别联合类型
type ValueWrapper<'a> =
| Value of 'a [2]
C# 的类是一个简单的不可变类型,存储了类型 T的值[1]。在 F# 中,使用了只有一个分支的差别联合,也很重要,它可以创建命名类型,以方便使用。我们很快就会看到,可以使用模式匹配(用 Value 识别器)就能访问这个值。有这个类型的模式匹配,永远也不会失败,因为只有一个分支,因此,可以直接在值绑定的内部使用,这在实现计算的算法时,非常有用。首先,我们看一下,用这种新类型能够写出什么种类的计算。
0 0
- 12.5.1 声明计算类型
- 12.5.1 声明计算类型
- c++ 笔记1 类型声明
- 声明定义(变量声明、函数声明、类型声明)
- C++类型和声明
- XHTML文档类型声明
- c 类型的声明
- C语言 类型声明
- 声明float类型
- 用typedef声明类型
- JS声明变量类型
- declare 声明变量类型
- 类型的声明
- 联合类型的声明
- 枚举类型的声明
- DOCTYPE 文档类型声明
- 声明变量类型
- 声明变量类型
- Android隐藏输入法自带的输入框,将输入框向上推
- LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- 在数据库服务端,添加一个表格,然后在MFC中对数据库表格的数据做插入、删除和修改
- Linux中虚拟内存和物理内存的关系
- 古藤堡带你体验别样的田园生活
- 12.5.1 声明计算类型
- Java indexOf()的两个用法
- NYOJ-91
- JDK性能监控
- java 中 Date 类型快判断日期是否合法.
- 如何通过Ajax异步获取图表数据赋值于图表并渲染呈现
- LINUX命令备份
- 站链网的产品有哪些?友情链接、外链代发、百度排名、软文发布等
- 保证应用程序只有一个实例在运行——VS2008