小编kev*_*vin的帖子

使用Data.Fixed进行回合问题

我在myfile.hs中定义了以下类型:

{-# 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
Run Code Online (Sandbox Code Playgroud)

而圆函数在ghci中运行良好:

Prelude Data.Fixed> :load myfile.hs
Prelude Data.Fixed> round (3.1::MyDouble)
3
Prelude Data.Fixed>
Run Code Online (Sandbox Code Playgroud)

如果我将以下代码附加到文件:

myRound :: MyDouble -> MyDouble 
myRound x  = round x
Run Code Online (Sandbox Code Playgroud)

我收到以下编译错误:

Prelude Data.Fixed> :load myfile.hs
No instance for (Integral MyDouble)
  arising from a use of round
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我如何在函数内调用吗?

PS:你可能猜到,我是Haskell的初学者

haskell

3
推荐指数
1
解决办法
376
查看次数

标签 统计

haskell ×1