什么是SML的类型系统的正式名称?

Hib*_*u57 3 computer-science types sml

到目前为止,我认为SML是简单类型lambda演算的一种方便实现.学习什么是简单类型的lambda演算,我知道它不能类型检查递归函数.

我了解到存在简单类型的lambda演算的泛化,命名为System F.系统F是多态的,具有函数返回类型,这可能在某种程度上考虑SML的函子,但是系统F(根据我读过的东西) ,无法进行类型检查无限递归,而这可以通过SML轻松实现:

fun r x: int = (r x): int   (* Type?checks *)
val y = r 0                 (* Infinite loop *)
Run Code Online (Sandbox Code Playgroud)

因此,如果SML的类型系统既不是简单类型也不是系统F,它是什么(正式)?或者我错了,这是两者之一?

Fer*_*cio 5

我相信这是一个Hindley-Milner型系统.