我的意思是,例如,爲什麼f =(+)不需要類型註釋?
f :: (Enum a) => a -> a --without this line, there would be an error
f = succ
這是因爲succ
需要它的參數是枚舉(succ :: (Enum a) => a -> a
)
但(+)
f = (+) --ok
雖然(+)
的聲明(+) :: (Num a) => a –> a –> a
。
我的意思是,我爲什麼不需要聲明f
爲f :: (Num a) => a –> a –> a
?
何時會發生這種減少? ghci中的'f =(+)'不受限制。 – Bergi 2015-02-11 22:59:43
@Bergi - 答案在這裏:http://stackoverflow.com/questions/28336108/why-is-22-0-double-in-a-hs-file-but-fractional-aa-in-ghci/28336620 #28336620 – 2015-02-11 23:52:53