scala - 计算元素出现的次数

标签 scala list haskell dictionary list-comprehension

计算列表中的所有元素在 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/

相关文章:

arrays - 哪个 haskell 库可以让我将 2D 数组/向量保存到 png/jpg/gif... 文件中?

scala - 在 Scala 中获取方法/函数/变量名称作为字符串

javascript - 单击时使用 jquery 清除列表

scala - 什么类型的 webapp 是 Scala 的 Lift 框架的最佳选择?

c++ - 列表的迭代器错误

java - 在一个巨大的列表中查找一个元素

haskell - 如何确保主线程在所有其他线程结束后结束?

haskell - (<$>) 如何保留关联性

scala - 为多项目 build.sbt 中的一个项目运行自定义 sbt 插件任务

scala - 从 scala 中的嵌套 json 文件创建 spark 数据框