产品类型

编辑
本词条由“匿名用户” 建档。
在编程语言和类型理论中,类型的乘积是一个结构中的另一个复合类型。乘积的操作数是类型,而乘积类型的结构是由乘积中操作数的固定顺序决定的。一个产品类型的实例保留了固定的顺序,但除此之外可以包含其原始数据类型的所有可能实例。产品类型的一个实例的表达式将是一个元组,被称为表达式的元组类型。一个类型的乘积是两个或多个类型的直接乘积。如果只有两个成分类型,可以称为对类型。例如,如果两个分量类型A和B是该类...
目录

产品类型

编辑

编程语言类型理论中,类型的乘积是一个结构中的另一个复合类型。乘积的操作数是类型,而乘积类型的结构是由乘积中操作数的固定顺序决定的。一个产品类型的实例保留了固定的顺序,但除此之外可以包含其原始数据类型的所有可能实例。产品类型的一个实例的表达式将是一个元组,被称为表达式的元组类型。一个类型的乘积是两个或多个类型的直接乘积。如果只有两个成分类型,可以称为对类型。例如,如果两个分量类型A和B是该类型所有可能的值的集合,那么写成A×B的乘积类型包含的元素是对(a,b),其中a和b分别是A和B的实例。对子类型是依赖对子类型的一个特例,其中类型B可能依赖于从A中挑选的实例。在许多语言中,产品类型采取记录类型的形式,对于这种类型,元组的组成部分可以通过标签来访问。在有代数数据类型的语言中,如大多数函数式编程语言,有一个构造函数的代数数据类型与产品类型是同构的。在Curry-Howard对应关系中,产品类型与逻辑学中的逻辑连接(AND)有关。

复合类型与结构体

这个概念直接延伸到任意有限数量的类型的乘积(n-ary乘积类型),在这种情况下,它表征了表现为相应类型的表达式的图元的表达方式。乘积类型的一个退化形式是单元类型:它是没有类型的乘积。在逐值编程语言中,产品类型可以被解释为一组对,其xxx部分是xxx类型的值,第二部分是第二类型的值。简而言之,它是一个笛卡尔产品,它对应于类型类别中的一个产品。大多数函数式编程语言都有一个原始的乘积类型概念。例如,type1,...,typen的乘积在ML中被写成type1*...*typen,在Haskell中被写成(type1,...,typen)。在这两种语言中,元组被写成(v1,...,vn),元组的组成部分是通过模式匹配来提取的。此外,许多函数式编程语言提供了更通用的代数数据类型,它扩展了乘积和类型。产品类型是和类型的对偶。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/170793/

(1)
词条目录
  1. 产品类型

轻触这里

关闭目录

目录