Uiua:动态语言也能拥有类型系统
A Uiua Type System
Uiua 作为一门动态数组语言,一直依靠运行时的灵活性来简化代码编写,但这在大型项目中可能成为维护的隐患。本文探讨了为 Uiua 引入渐进式类型系统的思考过程,放弃了传统语言中复杂的类型子语言,转而利用 Uiua 强大的格式化器特性。新系统通过 `⊨ validate` 函数,允许用户直接用 Uiua 代码构建类型规范,甚至能自动推断并插入类型注解。这种设计既保留了动态语言的简洁,又提供了静态检查的可靠性,展示了类型系统与语言特性深度集成的新可能。
Uiua 的新类型系统可以推断部分参数和输出类型,然后直接将这些类型插入到代码本身,让用户无需显式指定返回类型即可验证函数的正确性。