Haskell中的types推理有一点学习曲线(至less可以说!)。 开始学习的一个好方法是用简单的例子。 所以,以下是一个types推理的“hello world”。 考虑下面的例子: Prelude> :t 3 3 :: (Num t) => t Prelude> let x = 3 Prelude> :tx x :: Integer 问题是: 为什么3和x有不同的types? 链接总结: 阅读下面的答案全文; 这里只是一个链接总结: GHCtypes违约: Haskell报告部分4.3.4 GHCi的扩展types违约: 使用GHCi部分2.4.5 单态限制: Haskell wiki