【发布时间】:2012-08-16 22:46:32
【问题描述】:
据我所知,任何在编写函数或模块时不需要在源代码中编写类型注释的编程语言,如果该代码块是“类型正确的”,编译器将推断类型并编译编码。还有更多吗?
是否有这样的语言?如果是,它的类型系统有什么限制吗?
更新 1: 只是为了真正清楚,我问的是静态类型、完全类型推断的编程语言,而不是动态类型的编程语言。
【问题讨论】:
-
Python 和 Perl 浮现在脑海。它们不是编译语言,但这几乎不相关。在某些情况下,类型推断不能使用 DWIM——根据我的经验,Python 有点过于偏执,而 Perl 有点过于放松。
-
python 和 perl 是动态类型的编程语言,类型在 run-time 时绑定到值/vars,我问的是在编译时建立类型的语言 -时间静态类型,完全类型推断语言
-
您尝试阅读en.wikipedia.org/wiki/Type_inference 吗?还有全类型推断是什么意思?
-
@Euphoric 完全类型推断意味着没有类型无法在没有类型注释的情况下确定的表达式。
-
看看ACL2。它可能看起来像动态类型,但它允许推理代码的所有类型属性。当然,代价是不完全图灵完备。
标签: types programming-languages functional-programming type-inference type-systems