形式陈述
给定类型
计算规则给
直觉
积类型要求同时拥有一个
例子与边界
坐标、记录和返回多个结果都可建模为积。类型 int × bool 的值如 (3,true),与 bool × int 一般不同。积不是集合论意义上的交集,也不同于和类型:后者只携带两种分支之一。严格求值和惰性求值会影响组成部分何时计算,但不改变基本类型规则。
推论与应用
积类型是记录、环境、状态对和多参数函数柯里化的基础。它与笛卡尔积对应,并在类型范畴中满足从任意对象到积的映射由两个投影分量唯一决定的泛性质。
参考资料
- Benjamin C. Pierce, Types and Programming Languages, MIT Press, 2002,Ch. 11, products, tuples, and records。
- Robert Harper, Practical Foundations for Programming Languages, 2nd ed., Cambridge University Press, 2016,Ch. 11, product types。