0

我一直在尝试使用 Hindley-Milner 算法构建一个类型系统,并遇到了以下挑战,我很好奇是否有任何资源或论文可以查看。

假设我有一种编程语言,它具有某种形式的属性访问器(类似javascript),它适用于数组和对象,数组括号内的属性需要是数字,对象括号内的属性需要成为一个字符串。

例如

const arr = [0, 1, 2]
arr[0]

const obj = { hello: "World" }
obj["hello"]

假设我们想在下面的代码片段上使用hindley-milner

A[B]

然后如果后来我们意识到这B是一个数字,那么我们立即推断 A 是一个数组。类似地,如果我们推断 A 是一个对象,那么 B 立即是一个数字。

是否有任何论文或类型系统具有这种条件替换概念?

4

0 回答 0