Haskell 简单向量到矩阵函数的索引越界

Haskell 简单向量到矩阵函数的索引越界,haskell,Haskell,从Haskell开始。这一定是非常明显的事情,但我不明白为什么下面的简单代码会抛出“索引越界错误” 这是错误输出: /Data/Vector/Generic/Mutable.hs:596(write):索引越界(-4,9)setElem不是零索引,它以1开头 该错误是因为调用了setElem 2(0,0)m 如果在中更改0 vector2Diag vec = setDiag (identity (V.length vec)) 0 vec where 对于1,它将执行您试图让它执行的操作 vec

从Haskell开始。这一定是非常明显的事情,但我不明白为什么下面的简单代码会抛出“索引越界错误”

这是错误输出:


/Data/Vector/Generic/Mutable.hs:596(write):索引越界(-4,9)

setElem
不是零索引,它以1开头

该错误是因为调用了
setElem 2(0,0)m

如果在中更改
0

vector2Diag vec = setDiag (identity (V.length vec)) 0 vec where
对于
1
,它将执行您试图让它执行的操作

vector2Diag vec = setDiag (identity (V.length vec)) 0 vec where