Я пытался сделать п * п матрицы таким образом, что , если п = 2 результирующая матрица будет:Создание квадратных матрицы позиций в Haskell
[[(1, 1), (1, 2)], [(2, 1), (2, 2)]]
То есть, матрица доступен позиции в матрице 2 * 2.
Я попытался следующие:
myIndex :: Int -> [[(Int, Int)]]
myIndex (n+1) n = []
myIndex 1 n = [zip [1, 1..] [1, 2..n]] ++ myIndex 2 n
Но что-то не так. Что именно не так?
Для наглядности рассмотрим еще один пример с п = 3:
[[(1, 1), (1, 2), (1, 3)], [(2, 1), (2, 2), (2, 3)], [(3, 1), (3, 2), (3, 3)]]
спасибо заранее.
именно то, что «неправильно»? Для начала, 'myIndex (n + 1) n' является недопустимым синтаксисом. И все это лучше сделать с помощью «карты» в любом случае ... – Koterpillar
@ Koterpillar вы знаете, как я могу это сделать? Я попытался сделать это через 2-3 часа, но я не мог понять это –
'matrix n = map (\ i -> map (i,) [1..n]) [1..n]' – leventov