小编not*_*Bob的帖子

更高级的类型作为 Haskell 中的类型变量

我有一堂课:

import Linear

class Coordinate c where
    rotate :: Num a => Quaternion a -> c a -> c a
    translate :: Num a => V3 a -> c a -> c a
Run Code Online (Sandbox Code Playgroud)

,我已经定义了实例

instance Coordinate V3 where
    rotate _ = id
    translate p = (p+)

instance Coordinate Quaternion where
    rotate o = (o*)
    translate _ = id
Run Code Online (Sandbox Code Playgroud)

现在我想为类的一对成员定义一个实例。

instance (Coordinate a, Coordinate b) => Coordinate (a, b) where
    rotate o (a, b) = (rotate o a, rotate o b) …
Run Code Online (Sandbox Code Playgroud)

haskell higher-kinded-types type-variables

6
推荐指数
1
解决办法
123
查看次数