考虑以下示例:
data Dot = Dot Double Double
data Vector = Vector Double Double
首先,我想重载
+
Vector
的运算符添加。如果我想重载相等(==
)运算符,我会这样写:instance Eq Vector where ...blahblahblah
但是找不到有没有
Add
要制作的类型类 Vector
表现得像具有加法运算的类型。我什至找不到 Haskell 类型类的完整列表,我只知道不同教程中的几个。这样的 list 存在吗?另外,我可以重载
+
吗?添加运算符 Vector
至Dot
(这似乎很合乎逻辑,不是吗?)。
最佳答案
发现有关函数属于哪个类型类(如果有)的信息的一种简单方法是使用 GHCi:
Prelude> :i (+)
class (Eq a, Show a) => Num a where
(+) :: a -> a -> a
...
-- Defined in GHC.Num
infixl 6 +
关于Haskell - 添加类型类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6883200/