小编And*_*dyM的帖子

make [(Matrix Double,Vector Double)]一个Num的实例

我定义了:

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)

但我收到错误:非法实例声明.

haskell

1
推荐指数
1
解决办法
112
查看次数

fmap(+1)$ read"[1]"给出错误

当我输入repl fmap(+1)$ read"[1]"时,我希望得到[2],但我得到错误:

使用'it'时没有(Functor f0)的实例

不幸的是,这对我没有帮助.有人可以向我解释这段代码的错误吗.

haskell

0
推荐指数
1
解决办法
103
查看次数

标签 统计

haskell ×2