首页 > 解决方案 > Haskell - 排序子列表

问题描述

我有一个包含一些子列表的列表,我需要按长度排序。

例如: [[1,3,4,9],[2,4],[5,4,7]]会变成[[2,4],[5,4,7],[1,3,4,9]].

标签: haskell

解决方案


您可以使用comparing该函数生成自定义比较函数length,使用内置sortBy函数对列表进行排序:

import Data.List
import Data.Ord

x :: [[Int]]
x = sortBy (comparing length) [[1,3,4,9],[2,4],[5,4,7]]
-- x == [[2,4],[5,4,7],[1,3,4,9]]

推荐阅读