Я пытаюсь преобразовать список в массив (список списков) из функции, которая получает Int (i), который является счетчиком, который всегда начинается с 0, другой Int (n), который является длиной каждого строка и список, который я должен преобразовать в матрицу.
createMatrix :: (Int, Int, [Int]) -> [[Int]]
createMatrix (i, n, ([])) = []
createMatrix (i, n, (x:y)) = if (i < n) then [x] : createMatrix (i+1, n, (y))
else [] ++ createMatrix (0, n, (x:y))
Это дает мне в качестве вывода:
[[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],[18]]
когда должно быть что-то вроде:
[[1,2,3,4,5,6],[7,8,9,10,11,12],[13,14,15,16,17,18]]
в случае, если n равно 6
У кого-нибудь есть идея, что я могу потерпеть неудачу? Я попробовал несколько вещей и не нашел решения.
Спасибо