反转Haskell中另一个列表中的列表

ZCoder

我对Haskell还是很陌生,并且正在尝试撤消一份清单。同时,我想反转该列表中的列表。因此,例如:

Prelude> rev [[3,4,5],[7,5,2]]
[[2,5,7],[5,4,3]]

我知道以下代码会反转一个列表:

rev :: [[a]] -> [[a]]
rev [[]] = [[]]
rev [[x]] = [[x]]
rev xs = last xs : reverse (init xs)

我已经苦苦挣扎了一段时间,我对代码做了一些补充,但是它仍然无法正常工作,我陷入了困境。

rev :: [[a]] -> [[a]]
rev [[]] = [[]]
rev [[x]] = [[x]]
rev xs = last xs : reverse (init xs)
rev [xs] = last [xs] : reverse (init [xs])

我将不胜感激。提前致谢。

villou24

我们必须反转内部列表和外部列表。要反转内部列表,可以使用map应用于reverse列表的每个元素:map reverse [[3,4,5],[7,5,2]] == [[5,4,3],[2,5,7]]然后只需再次反转结果即可reverse $ map reverse [[3,4,5],[7,5,2]] == [[2,5,7],[5,4,3]]

这项作业的函数仅仅是一个的组合物,reversemap reverse,所以rev = reverse . map reverse

在这里,我们首先颠倒内部列表,然后颠倒外部列表,但是顺序并不重要,我们可以用另一种方法来做到这一点:rev = map reverse . reverse

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

用另一个列表Haskell中的元素替换元素列表

另一个关联列表中的关联列表

在另一个列表中搜索列表值

删除另一个列表中的列表项

追加另一个列表中的列表

python从另一个列表中删除列表

如何创建一个列表,其中包含对 Haskell 中另一个列表的每个项目的计算?

如何从另一个列表中的列表中获取另一个列表中的值

根据另一个列表过滤haskell列表

使用“ while”从另一个列表中删除一个列表中的元素

Python在一个列表中查找不在另一个列表中的元素

根据另一个列表中的元素重复一个列表中的元素

在javascript中从另一个列表中减去一个列表的值

从另一个列表中的一个列表中查找元素数

计算一个列表中的项目数在另一个列表中

根据另一个列表中的索引汇总一个列表中的元素

从另一个列表中的一个列表中查找任何值

Python:用列表中另一个列表中的值替换列表中的元素

在Python中的列表列表中将列表分配给另一个列表

排序列表列表与python中的另一个列表列表

在另一个列表中迭代反应

从另一个列表中删除项目

Linq查询-在另一个列表中列出

用另一个替换列表中的元素

访问另一个类中列表的元素

从另一个选择中更新下拉列表

如何从另一个班级中读取列表

在另一个函数中调用列表 - Python

haskell 中是否有一个函数来确定列表中的每个元素是否在另一个列表中?