Я пытаюсь написать функцию, как это:замена элемента в список списков в Haskell
updateMatrix:: [[a]] -> a -> (x, y) ->[[a]]
Это, как предполагается взять в список списков, таких как:
[ [1, 2, 3, 4],
[5, 6, 7, 8]]
и поместить данный элемент по указанным координатам, поэтому, учитывая:
[ [1, 2, 3, 4],
[5, 6, 7, 8]] 9 (0, 1)
он должен вернуть
[ [1, 9, 3, 4],
[5, 6, 7, 8]]
Я не могу понять, как это сделать, не перестраивая всю матрицу, пожалуйста, помогите!
Это невозможно сделать без «перестроения» матрицы, поскольку все в Haskell неизменно. Тем не менее, «перестроение» матрицы не будет дорогостоящим, поскольку компилятор позаботится об этом, он не будет буквально создавать еще одну совершенно новую матрицу. – rafalio
Вы не можете сделать это, не перестраивая матрицу, поскольку списки неизменны в Haskell. – rightfold