我定义了:
type Network = [(Matrix Double,Vector Double)]
Run Code Online (Sandbox Code Playgroud)
Matrix和Vector来自hmatrix库.从hmatrix的文档中可以看出,Matrix Double和Vector Double已经是Num的实例.由于我需要添加和减少网络安静,我还希望网络成为Num的一个实例.我试过了
instance Num Network where
(+) = zipWith (\(m,v) (n,w) -> (m+n,v+w))
(-) = zipWith (\(m,v) (n,w) -> (m-n,v-w))
(*) = zipWith (\(m,v) (n,w) -> (m*n,v*w))
Run Code Online (Sandbox Code Playgroud)
但我收到错误:非法实例声明.
当我输入repl fmap(+1)$ read"[1]"时,我希望得到[2],但我得到错误:
使用'it'时没有(Functor f0)的实例
不幸的是,这对我没有帮助.有人可以向我解释这段代码的错误吗.
haskell ×2