[Haskell-cafe] How to define an operation in terms of itself (but
of different type)?
Olex P
hoknamahn at gmail.com
Fri Jan 23 17:58:54 EST 2009
Well if telepaths on vacation...
class Vector v where
(^+^) :: v -> v -> v
data Vector3 = V3 !Double !Double !Double
instance Vector Vector3 where
(V3 x1 y1 z1) ^+^ (V3 x2 y2 z2) = V3 (x1 + x2) (y1 + y2) (z1 + z2)
class Matrix m where
(^+^) :: m -> m -> m
data Matrix3 = M3 !Vector3 !Vector3 !Vector3
instance Matrix Matrix3 where
(M3 r11 r12 r13) ^+^ (M3 r21 r22 r23) = M3 (r11 ^+^ r21)
(r12 ^+^
r22)
(r13 ^+^
r23)
Hope this is better :)
So yeah... r11 ^+^ r21 just doesn't work.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20090123/e55910c9/attachment.htm
More information about the Haskell-Cafe
mailing list