Haskell旋转列表清单

问题描述 投票:-3回答:1

我正在尝试在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]]
list haskell recursion functional-programming nested-lists
1个回答
0
投票

假设空列表仅出现在开头,而从不出现在中间,那么一种方法可能是,首先找到一种方法来进行单次旋转,然后对n个旋转重复相同的操作n次。我认为我们可以为此目的使用mapAccumL

© www.soinside.com 2019 - 2024. All rights reserved.