Haskell - 是否有标准函数来提供列表中每个项目的计数?

时间:2012-12-07 07:25:28

标签: list haskell map count

  

可能重复:
  Counting unique elements in a list
  Count frequency of each element in a list

我试过Google,Hoogle和这里并没有看到任何明显的东西。

应该{​​{1}}并返回['a', 'b', 'e', 'c', 'e', 'a', 'e']或类似的东西。

2 个答案:

答案 0 :(得分:6)

我会用地图来计算:

import qualified Data.Map as M

countElems :: (Ord a) => [a] -> M.Map a Int
countElems = M.fromListWith (+) . flip zip (repeat 1)

答案 1 :(得分:2)

没有。你可以使用例如

import Data.List
import Control.Arrow

map (head &&& length) $ group $ sort ['a', 'b', 'e', 'c', 'e', 'a', 'e']

或者考虑使用MultiSet