我在myfile.hs規定的下列類型:問題與輪Data.Fixed
{-# LANGUAGE DeriveDataTypeable #-}
import Data.Typeable
import Data.Fixed
data E18 = E18 deriving (Typeable)
instance HasResolution E18 where resolution _ = 10^18
type MyDouble = Fixed E18
--myRound :: MyDouble > MyDouble
--myRound x = round x
和而全面的功能效果很好ghci的:
Prelude Data.Fixed> :load myfile.hs
Prelude Data.Fixed> round (3.1::MyDouble)
3
Prelude Data.Fixed>
,如果我追加以下代碼文件:
myRound :: MyDouble -> MyDouble
myRound x = round x
我得到以下編譯錯誤:
Prelude Data.Fixed> :load myfile.hs
No instance for (Integral MyDouble)
arising from a use of round
可能有人請告訴我如何調用循環的函數裏面?
PS:正如你可能已經猜到,我是初學者在Haskell
通知'round'可能不圓你想'round'四捨五入的方式。要圍繞你想旋轉的方式,然後考慮使用「floor」或「ceiling」而不是「round」進行四捨五入,這意味着即使是最接近的圓形也是如此。回合。 –
@ ThomasM.DuBuisson令人敬畏的使用這個詞圓。真棒。 – AndrewC