用scalaz简单聚合?

时间:2015-12-11 19:24:18

标签: scala scalaz monoids

这是我对简单聚合的实现。

  val mapping = Map("AA" -> "A", "AB" -> "A", "B" -> "B")
  val input = Map("AA" -> 1, "AB" -> 1, "B" -> 1)

  val output = input.groupBy { case (k, _) => mapping(k) }
               .mapValues(_.values.sum)

使用scalaz是否有更智能的实现?

1 个答案:

答案 0 :(得分:0)

最后得到了这个,捏了一些 monoids

val output = input.toList.map { case (k, v) => Map((mapping(k), v)) }.reduce( _ |+| _)

不确定它在内存和/或CPU方面是否更好。