sta*_*ser 3 haskell
a = 2+2.0从.hsGHCi中的文件加载并进行:t a演出a :: Double.
a = 2+2.0
.hs
:t a
a :: Double
另一方面,做let b = 2+2.0和:t bGHCi表明b :: Fractional a => a.
let b = 2+2.0
:t b
b :: Fractional a => a
你怎么能从这两个文件中推断出这个?
我发现这个官方文档几乎不可理解.
Jon*_*ast 6
我想这个文档就是你想要的.基本上,GHC默认情况下GHC实现的语言不同于模块; 特别是,在模块中默认启用可怕的单态限制(根据语言),而在GHCi中它被禁用.单态限制是导致GHC为您选择单态类型的原因a,而在关闭它的情况下,GHC可以自由地推广类型b,从而产生您看到的多态类型.
a
b
归档时间:
10 年,9 月 前
查看次数:
99 次
最近记录: