“字典传递把类型类条件翻译成显式的运行时参数。字典是保存方法的记录,可看作带字段名的积类型。对只含相等方法的类Eq,定义”
形式陈述
给定类型
计算规则为
零元积是单位类型
直觉
积类型表达“同时拥有一份
例子与边界
函数
具有类型
边界是积类型与和类型的混淆:
推论与应用
积类型支撑元组、记录、函数多返回值和环境结构。记录类型可看作带字段名的有限积,函数多参数也可柯里化或接收一个积类型参数。
在Curry–Howard 对应下,
普通积允许分别投影、从而忽略另一分量。线性 tensor则在线性上下文分割下同时交付两个分量,不能无条件复用这些笛卡尔投影规则;二者的差别来自资源纪律,不是换一个乘号而已。
参考资料
- 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。