-1
我想定义一个函数,它需要三个参数,坐标i,j和矩阵本身。 它必须改变给定位置(i,j)的入口并返回新的矩阵。如何更改矩阵条目并返回矩阵
我的预定义的矩阵:
fieldA 1 1 = 0
fieldA 1 2 = 1
fieldA 2 1 = 1
fieldA 2 2 = 0
我第一次尝试下面的代码&错误:
changeValue i j matrix =
do matrix i j <- 0
return matrix
test.hs:113:12: error:
Parse error in pattern: matrix
Possibly caused by a missing 'do'?
我的第二个attemt是下面的代码&错误:
changeValue i j matrix =
map (\a b -> if a == i && b == j then matrix i j <- 0 else matrix i j <- matrix i j) matrix
test.hs:113:58: error:
parse error on input ‘<-’
Perhaps this statement should be within a 'do' block?
我认为解决方案很简单,但我绝对乞求在内部Haskell和 我希望任何形式的帮助
你为什么使用''''和''块? 'fieldA'是一个矩阵?它对我来说看起来像一个功能。第二个想法是,这是一个定义矩阵的有效方法,只是不是一个非常直观的IMO。更改“矩阵”最后一列的值意味着创建一个新的“矩阵”,如果输入与您正在更改的输入相匹配,则返回新值。 – Lazersmoke
@Lazersmoke是的,你是对的。 'fieldA'是一个函数,但应该表示一个矩阵。背后的想法是游戏“战舰”。我只尝试使用'<-',因为'='不起作用。我得到了错误信息:_Perhaps此语句应该在'做'块?_。这就是我试图使用do块的原因。 – Landau