【发布时间】:2014-03-20 09:26:20
【问题描述】:
我目前正在研究一种新的编程语言的想法,理想情况下我希望该语言混合一些功能和过程(面向对象)概念。
我对 Haskell 等语言真正着迷的一件事是它是静态类型的,但您不必对类型进行注释(感谢 Hindley-Milner!)。
我真的很喜欢我的语言,但是在阅读了这个主题之后,似乎大多数人都同意类型推断对于子类型/面向对象是不切实际的/不可能的,但是我不明白为什么会这样。我不知道 F#,但我知道它使用 Hindley-Milner 并且是面向对象的。
我真的很想对此进行解释,最好是针对面向对象语言无法进行类型推断的场景的示例。
【问题讨论】:
-
阅读提示:Benjamin Pierce,“类型和编程语言”
标签: oop language-agnostic functional-programming type-inference static-typing