使用我自己的构造函数(Haskell)创建一个Fractional实例

时间:2014-01-05 10:46:19

标签: haskell instance

我正在尝试使用我自己的构造函数“Z95”创建我自己的Fractional实例,该构造函数定义为:

data Z95 = Z95 Classe deriving (Eq)

我已经使用这个构造函数定义了一个Num实例,但是没有理由这个Fractional的实例不起作用:/

instance Num Z95 where
  (+) (Z95 a) (Z95 b) = z95 (representant (plusMod 95 a b))
  (*) (Z95 a) (Z95 b) = z95 (representant (mulMod 95 a b))
  fromInteger n = z95 n
  negate (Z95 x) = z95 (-(representant x) + 95)

所以,这是分数实例:

instance Fractional Z95 where
  (/) c1 c2 = (Z95 c1) * (Z95 (invMod c2)  

当我尝试将文件加载到GHCI时,它告诉我:

parse error (possibly incorrect indentation or mismatched brackets)

即使我更改了实例声明之后的代码,也会显示此消息。

1 个答案:

答案 0 :(得分:4)

正如错误消息所示,您的括号不匹配:

(/) c1 c2 = (Z95 c1) * (Z95 (invMod c2) 
                       ^