2014-01-27 147 views
0

我想按字典顺序对Haskell列表中的元素进行排序,是否有任何方法?如何按字典顺序对列表进行排序?

排序前:

[ [], [1,2], [1], [1,2,3], [2], [1,3], [2,3], [3]] 

后排序:

[ [], [1], [1,2], [1,2,3], [1,3], [2], [2,3], [3]] 
+1

您是否尝试过只用'sort'? –

+2

我讨厌听起来很粗鲁,但是没有发现只是搜索“Haskell排序列表”之类的东西? –

+0

最直接的方法:只需定义函数 lex_compare :: String - > String - > Ordering 它根据所需的顺序比较两个列表,然后使用sortBy函数。 – user3974391

回答

3

default Ord实例列表实际上这样工作:

Prelude> import Data.List 
Prelude Data.List> sort [ [], [1,2], [1], [1,2,3], [2], [1,3], [2,3], [3]] 
[[],[1],[1,2],[1,2,3],[1,3],[2],[2,3],[3]] 
相关问题