据我了解,几乎所有依赖类型的语言都使用弱头标准形式进行可转换。为什么会这样?为什么检查可兑换性是否足够(对我来说似乎不够)?你能推荐什么阅读?
答案 0 :(得分:3)
对于基本情况,弱头归一化就足够了,而且效率更高。
x1 = x1 : t
x1 = x2 : t, x1 ≠ x2
x1 t1 ... tn = x2 : t,
x1 t1 ... tn = x2 s1 ... sn : t, x1 ≠ x2
对于递归情况,无论如何都会在子对(ti, si)
上调用该函数,因此不需要急切地减少它们。
x1 t1 ... tn = x1 s1 ... sn : t
您可以在本杰明·皮尔斯编辑的“类型和编程语言高级主题”第230页中阅读更多相关信息。您还可以在网上找到很多关于纯类型系统的类型推断和规范化的论文。
答案 1 :(得分:1)
主持人可以将此答案与上述内容合并。这些是按字母顺序排列的。