【发布时间】:2014-11-26 00:22:01
【问题描述】:
因此,在互联网上搜索了很长一段时间以寻找一个不错的解决方案后,我终于走到了尽头。
我目前面临一些有关文本处理的 Haskell 问题,其中大部分都非常顺利。但是,我现在被困在对列表中的元组进行排序。
基本上,我有一个元组列表,所以类似于
list = [("hey","there"),("there","hey"),("bears","are")]
我现在的目标是在内部对元组进行排序,以便我收到
list = [("hey","there"),("hey","there"),("are","bears")]
然后我将运行group $ sort list 以便能够检索有多少对等对的计数。换句话说,("hey,"there")等价于("there","hey")。
到目前为止,我尝试过的是使用地图功能。但是,您似乎无法使用 map 函数运行列表操作,但至少要尝试了解我的最终目标是什么,这是我到目前为止所取得的成就。
countup tuples =
let final =
sort sorted_internal where
sorted_internal = map (\x->(sort x)) tuples
in map (\x->(head x, length x)) final
【问题讨论】:
-
Cheerio通常表示再见 -
你基本上是在问如何对元组进行排序?您不能对它们进行一般排序,它们不是列表。你有没有考虑过不使用元组,或者写
orderTuple :: (a,a) -> (a,a),如果它还没有,就把较小的放在第一位 -
好吧,我将如何将它应用到我已经拥有的东西中?因为,是的,我的目标确实是以某种方式订购它们。但是,我想在元组中排序,而不是对元组本身进行排序。