Первый список имеет длину 27, я хочу, чтобы превратить это в список длины 9 таким образом, что индексы список объединяются, как показано во втором списке ниже:Tricky преобразование списка в Haskell
[[Just 3,Just 6,Nothing],[Nothing,Just 7,Just 1],[Just 2,Nothing,Nothing]
,[Nothing,Just 5,Nothing],[Nothing,Nothing,Nothing],[Just 1,Just 8,Nothing]
,[Nothing,Nothing,Just 9],[Just 2,Nothing,Just 4],[Just 7,Nothing,Nothing]
,[Nothing,Nothing,Nothing],[Nothing,Just 1,Just 3],[Nothing,Just 2,Just 8]
,[Just 4,Nothing,Nothing],[Just 5,Nothing,Just 2],[Nothing,Nothing,Just 9]
,[Just 2,Just 7,Nothing],[Just 4,Just 6,Nothing],[Nothing,Nothing,Nothing]
,[Nothing,Nothing,Just 5],[Just 3,Nothing,Just 8],[Just 9,Nothing,Nothing]
,[Nothing,Just 8,Just 3],[Nothing,Nothing,Nothing],[Nothing,Just 6,Nothing]
,[Nothing,Nothing,Just 7],[Just 6,Just 9,Nothing],[Nothing,Just 4,Just 3]]
[[1,4,7],[2,5,8],[3,6,9]
,[10,13,16],[11,14,17],[12,16,18]
,[19,22,25],[20,23,26],[21,24,27]
Что бы быть простейшим решением этой проблемы?
Я пытался использовать foldr
, но я просто могу понять, как каждый элемент помещать в другой список в зависимости от индекса, есть четкий образец того, как данные объединяются, поэтому должно быть какое-то простое решение который использует этот шаблон ...
Какова процедура получения второго списка с первого? – Aleksandar
Мне совершенно непонятно, что эта функция должна делать с 1 вход-выход. Если у вас есть решение, но вы ищете более простой вариант, вы должны включить существующее решение. Если у вас нет решения, вы должны включить свои попытки. Вы также должны указать описание на английском языке того, что делает функция. – user2407038
Посмотрите на ответ jamshidh, это именно то, что я хочу сделать, но искал более общее решение. – user3139545