微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Hindley-Milner - 有条件换人?

如何解决Hindley-Milner - 有条件换人?

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

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

例如

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

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

假设我们想在以下代码片段中使用 hindley-milner

A[B]

如果后来我们意识到 B一个数字,那么我们立即推断出 A 是一个数组。同样,如果我们推导出 A 是一个对象,那么 B 立即是一个数字。

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。