Я пытаюсь реализовать следующую функцию в Haskell, это рекурсивный обход, который получает Int и список списков [[Int]] и сдвигает элементы внутренних списков вправо без изменения размера списков. Мне удалось получить список с номерами в правильном порядке, но я не смог вставить их обратно в соответствующие подсписки.
shift_right::Int->[[Int]]->[[Int]]
пример №1:
shift_right 1 [[1,2,3],[4,5,6]] => [[6,1,2],[3,4,5]]
пример №2:
shift_right 3 [[],[1],[2,3],[4,5,6]] => [[],[4],[5,6],[1,2,3]]
map length, чтобы получить длину всех подсписков,concat, чтобы сгладить вложенный список, сдвинув весь этот сглаженный список, а затем повторно разбив сглаженный сдвинутый список, используя длины, которые вы получили на первом шаге. - person bradrn   schedule 05.05.2020