什么是Algebird中的MonoidAggregator

时间:2017-05-23 10:56:08

标签: scala scalding monoids algebird

我没有找到任何关于MonoidAggregator的文档。 它的用途是什么?

使用它的一个例子:

<h1>angular gallery</h1>
<div ng-app="gallery">
  <div ng-controller="GalleryCtrl"><gallery></gallery></div>
</div>

forAll返回一个MonoidAggregator。

如果 _use == false ,设置准备以返回大致相同吗?

1 个答案:

答案 0 :(得分:0)

MonoidAggregator只是一个聚合器,它有一个底层Monoid而不是Semigroup。这意味着您可以将其应用于空序列而不会出现异常。

所以,基本上幺半群聚合器是:

trait Aggregator[A, B, C] {
  def prepare(a: A): B
  def semigroup: Semigroup[B]
  def present(b: B): C
}

trait MonoidAggregator[A, B, C] extends Aggregator[A, B, C] {
  def prepare(a: A): B
  def monoid: Monoid[B]
  final def semigroup: Semigroup[B] = monoid
  def present(b: B): C
}