首页 > 解决方案 > 如何检查双重列表长度?

问题描述

如何检查列表列表的长度?

我正在尝试使用 group (sort xs) 函数检查每个数字的频率。我想我可以使用地图和长度功能,但不知道。

import Data.List

freqs :: [Int] -> [[Int]]
freqs [] = []
freqs xs = group (sort xs)

上面代码的输出是

主>频率[3,2,1,1]

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

但我想得到每个数字的频率。因此,预期输出为 [2,1,1],1 出现两次,2 出现一次,3 出现一次。

标签: haskell

解决方案


如果我理解正确,您基本上可以使用该函数获得map的结果,该函数获取列表的长度。group (sort xs)length

freqs xs = map length $ group $ sort xs

推荐阅读