【发布时间】:2016-07-22 23:14:14
【问题描述】:
这是question 的后续问题。有人建议将类型网络作为vectorSpace的实例会更有意义。
newtype Network = Network [( Matrix Double, Vector Double)]
instance AdditiveGroup Network where
(Network n1) ^+^ (Network n2) = Network $ zipWith (\(m,v) (n,w) -> (m+n,v+w)) n1 n2
(Network n1) ^-^ (Network n2) = Network $ zipWith (\(m,v) (n,w) -> (m-n,v-w)) n1 n2
instance VectorSpace Network where
type Scalar Network = Double
lambda *^ (Network n) = Network $ map (\ (m,v) -> (lambda*m,lambda*v)) n
但是当我尝试编译时,我收到一个错误,说我为“标量”编写了一个非法实例。 谁能解释一下我做错了什么?
【问题讨论】:
-
您应该在以后包含错误消息。它使弄清楚发生了什么变得更加容易和快捷。
标签: haskell