与scalaz的简单聚合?
simple aggregation with scalaz?
这是我实现的一个简单聚合。
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 的更智能的实现?
终于得到了这个,利用了一些 monoids
val output = input.toList.map { case (k, v) => Map((mapping(k), v)) }.reduce( _ |+| _)
不确定在内存方面是否更好and/or CPU。
这是我实现的一个简单聚合。
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 的更智能的实现?
终于得到了这个,利用了一些 monoids
val output = input.toList.map { case (k, v) => Map((mapping(k), v)) }.reduce( _ |+| _)
不确定在内存方面是否更好and/or CPU。