爲什麼a
和b
之間的關係是不可扣除的?不可推導的關係
class Vector a where
(<.>) :: Num b => a -> a -> b
data Vec2 a
= Vec2 (a, a)
deriving Show
instance Num a => Vector (Vec2 a) where
Vec2 (a, b) <.> Vec2 (c, d) = a * c + b * d
我想有一個Vec2代數數據結構,其中組件可以是任何數字。上述
[Here](http://hackage.haskell.org/package/vector-space-0.8.7/docs/Data-VectorSpace.html)是向量空間類的標準實現。正如你會看到它使用'Scalar'作爲相關類型的家族,就像Ørjan所建議的那樣。 ('<.>'類實際上是一個子類,['InnerSpace'](http://hackage.haskell.org/package/vector-space-0.8.7/docs/Data-VectorSpace.html#t:InnerSpace) :並非所有的向量空間都允許標量/內積;它們都允許的只是將向量與標量相乘('* ^')並將向量相加(來自'添加劑組')的'^ + ^')。 – leftaroundabout 2015-02-10 23:45:49