xua*_*nji 11 haskell typeclass
我试图在haskell中定义Vector3数据类型,并允许在其上使用(+)运算符.我尝试了以下方法:
data Vector3 = Vector3 Double Double Double
Vector3 x y z + Vector3 x' y' z' = Vector3 (x+x') (y+y') (z+z')
Run Code Online (Sandbox Code Playgroud)
但是ghci抱怨(+)的模糊发生.我不明白为什么这个事件是模棱两可的; 肯定地,类型检查器可以推断x,x',y等具有Double类型,因此用于它们的正确运算符是Prelude.+?
我知道我可以让Vector3成为Num类型类的一个实例,但这对我来说太限制了; 我不想用另一个向量定义向量的乘法.
| 归档时间: |
|
| 查看次数: |
1161 次 |
| 最近记录: |