有界量化

类型理论中,有界量化(也是有界多态性或有界泛型)指的是普遍的或存在的量词,这些量词被限制(有界)在一个特定类型的子类型上范围。

有界量化是参数化多态性与子类型化的交互。

传统上,有界量化是在SystemF<:的函数式环境中研究的,但在现代面向对象语言中也有支持参数多态性(泛型)的语言,如Java、C#和Scala。

有界量化的概述

有界量化的目的是允许多态函数依赖于对象的一些特定行为,而不是类型继承。它为对象类假设了一个基于记录的模型,每个类成员都是一个记录元,所有类成员都是命名的函数。

对象属性被表示为没有参数的函数,并返回一个对象。具体的行为是一些函数名称,以及参数的类型和返回类型。

边界量化允许考虑所有具有这样一个函数的对象。一个例子是一个多态的min函数,它考虑的是所有可以相互比较的对象。

F-boundedquantificationF-boundedquantification或递归boundedquantification,于1989年引入,允许对应用于递归类型的函数进行更精确的类型化。

递归类型是包括一个将其作为某些参数或其返回值的类型的函数。

有界量化

有界量化的例子

这种类型约束可以在Java中用一个通用接口来表达。下面的例子演示了如何描述可以相互比较的类型,并将其作为多态函数中的类型信息。

Test.min函数使用了简单的有界量化,并且不保留分配类型的类型,与Test.Fmin函数相比,后者使用了F有界量化。

0

点评

点赞

相关文章