我编译代码agin和agin第一次在mmult上说解析错误然后在l什么问题确切我不知道
mmult :: (Ix i, Num a) => Array (i, i) a -> Array (i, i) a -> Array (i, i) a
mmult x y
| x1 /= y0 || x1' /= y0' = error "range mismatch"
| otherwise = array ((x0, y1), (x0', y1')) l where
((x0, x1), (x0', x1')) = bounds x
((y0, y1), (y0', y1')) = bounds y
ir = range (x0, x0')
jr = range (y1, y1')
kr = range (x1, x1')
l = [((i, j), sum [x ! (i, k) * y ! (k, j) | k <- kr] ) | i <- ir, j <- jr]
请帮帮我
答案 0 :(得分:2)
你在最后一行的末尾错过了几个近括号。
答案 1 :(得分:2)
mmult
可能与之前的任何内容不同。l = [((i, j), sum [x ! (i, k) * y ! (k, j) )| k <- kr]
这应该是
l = [((i, j), sum [x ! (i, k) * y ! (k, j) | k <- kr] ) | i <- ir, j <- jr]