We show that any functional language with record extension possesses record concatenation for free. We exhibit a translation from the latter into the former. We obtain a type system for a language with record concatenation by composing the translation with type-checking in a language with record extension. We apply this method to a version of ML with a record extension and obtain an extension of ML with either asymmetric or symmetric concatenation. The latter extension is simple, flexible and has a very efficient type inference algorithm in practice. Concatenation together with removal of fields needs one more construct than extension of records. It can be added to the version of ML with record extension. However, many typed languages with record cannot type such a construct. The method still applies to them, producing type systems for record concatenation without removal of fields. Object systems also benefit of the encoding which shows that multiple inheritance does not actually require the concatenation of records but only their extension.
我们证明,任何具有记录扩展名的功能语言都具有免费的记录串联功能。我们展示了从后者到前者的翻译。我们通过将翻译与带有记录扩展名的语言进行类型检查组成翻译,从而获得具有记录串联的语言的类型系统。我们将此方法应用于具有记录扩展名的ML版本,并获得具有非对称或对称串联的ML扩展名。后一种扩展简单,灵活,并且在实践中具有非常有效的类型推断算法。串联和删除字段比构造扩展记录需要更多的构造。可以将其添加到带有记录扩展名的ML版本中。但是,许多具有记录的键入语言无法键入这样的构造。该方法仍然适用于它们,生成用于记录级联的类型系统,而无需删除字段。对象系统还受益于编码,该编码表明多重继承实际上并不需要记录的串联,而只需要其扩展即可。 P>
机译:记录串联和子类型的类型推断
机译:用于安全传播患者电子病历的头部和秘密股的神经同步引导串联:加强Covid-19的远程安全保障
机译:ω-ancequality问题用于无星形语的串联层次结构
机译:记录串联和子类型化的有效类型推断
机译:通过免费涉及无扭转基本组的T2×SN的同型类型的同型类型
机译:麻醉记录的类型和设计对外科手术患者ASA身体状况评分的影响:纸质记录与电子麻醉记录
机译:记录串联和子类型的类型推断
机译:使用交叉类型记录连接