我正在为 Haskell 中的 Fraction 数据类型创建一堆实例,我想知道是否有一个地方可以实现该^
运算符。
我的意思是,我有几个不同Num
类型的实例,在这些实例中,我定义了常见的操作,例如+
,-
等。
有了它,数据类型就像我想要的那样表现得像一个普通数字(这意味着我可以调用类似的东西(Frac 1 2) + (Frac 1 4)
并返回Frac 3 4
)
我想做的是^
直接实施。现在,我已经将它定义为:
(|^|) :: Fraction -> Int -> Fraction
(|^|) f = foldr (*) mempty . flip replicate f
当我尝试将函数的名称更改为 时^
,我收到一个错误,因为它与 Prelude 的定义冲突^
。有没有一种Num
类型可以给我的Fraction
类型一个实例以允许我^
在其上使用运算符?
谢谢!