2014-01-27 2 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 -> Заказ , который сравнивает два списка по желаемому порядку, затем использует функцию 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]] 
Смежные вопросы