【发布时间】:2020-08-19 15:16:33
【问题描述】:
我正在尝试在 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-ing 来展平嵌套列表,移动整个展平列表,然后重新拆分展平的列表使用您在第一步中获得的长度移动列表。 -
你能分享你到目前为止所做的事情吗?
标签: list haskell recursion functional-programming nested-lists