4
看來我對ghci中-XNoImplicitPrelude標誌的理解是錯誤的,我對此非常困惑。使用NoImplicitPrelude重新綁定數字文本的語法
一個整數文字368名的意思是 「fromInteger(368 ::整數)」,而不是 「Prelude.fromInteger(368 ::整數)」。
然而,當我加載此代碼:
{-# LANGUAGE NoImplicitPrelude #-}
module Try where
import Prelude (Float,Integer, realToFrac)
data MyNum = Nummy Float
fromInteger :: Integer -> MyNum
fromInteger x = Nummy (realToFrac x)
進入ghci中,我得到如下:
~/tmp$ ghci -XNoImplicitPrelude try.hs
[1 of 1] Compiling Try (try.hs, interpreted)
Ok, modules loaded: Try.
*Try> 4
4
當我希望得到:
*Try> 4
Nummy 4.0
*Try>
Simliar事情發生在Try模塊內;例如,當我聲明函數返回類型MyNum並將其定義爲等於整數文字時,會出現類型錯誤。
謝謝,我想知道爲什麼沒有人問過這個。我想我需要在自己手背上紋上「RTFM」。 – Thomas