计算列表中的所有元素在 Haskell 中是一件简单的事情:
count xs = toList (fromListWith (+) [(x, 1) | x <- xs])
这是一个示例用法:
*Main> count "haskell scala"
[(' ',1),('a',3),('c',1),('e',1),('h',1),('k',1),('l',3),('s',2)]
这个函数在Scala中也能表达得这么优雅吗?
最佳答案
scala> "haskell scala".groupBy(identity).mapValues(_.size).toSeq
res1: Seq[(Char, Int)] = ArrayBuffer((e,1), (s,2), (a,3), ( ,1), (l,3), (c,1), (h,1), (k,1))
关于scala - 计算元素出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10934383/