我有一堂课:
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)