Known running total of T
queue of known trailing elements.
Example usage:
case class W28[T](window: Window[T]) { def total = this.window.total def items = this.window.items def size = this.window.size }
object W28 { val windowSize = 28 def apply[T](v: T): W28[T] = W28[T](Window(v))
implicit def w28Monoid[T](implicit p: Priority[Group[T], Monoid[T]]): Monoid[W28[T]] = new Monoid[W28[T]] { private val WT: Monoid[Window[T]] = Window.monoid[T](windowSize) def zero = W28[T](WT.zero) def plus(a: W28[T], b: W28[T]): W28[T] = W28[T](WT.plus(a.window, b.window)) } } val elements = getElements()
val trailing90Totals = elements .map{ W90 } .scanLeft(W90(0)) { (a, b) => a + b } .map{ _.total }
queue of known trailing elements.
queue of known trailing elements.
Example usage:
case class W28[T](window: Window[T]) { def total = this.window.total def items = this.window.items def size = this.window.size }
object W28 { val windowSize = 28 def apply[T](v: T): W28[T] = W28[T](Window(v))
implicit def w28Monoid[T](implicit p: Priority[Group[T], Monoid[T]]): Monoid[W28[T]] = new Monoid[W28[T]] { private val WT: Monoid[Window[T]] = Window.monoid[T](windowSize) def zero = W28[T](WT.zero) def plus(a: W28[T], b: W28[T]): W28[T] = W28[T](WT.plus(a.window, b.window)) } } val elements = getElements()
val trailing90Totals = elements .map{ W90 } .scanLeft(W90(0)) { (a, b) => a + b } .map{ _.total }
Known running total of T
Convenience case class defined with a monoid for aggregating elements over a finite window.
Known running total of
T
queue of known trailing elements.
Example usage:
case class W28[T](window: Window[T]) { def total = this.window.total def items = this.window.items def size = this.window.size }
object W28 { val windowSize = 28 def apply[T](v: T): W28[T] = W28[T](Window(v))
implicit def w28Monoid[T](implicit p: Priority[Group[T], Monoid[T]]): Monoid[W28[T]] = new Monoid[W28[T]] { private val WT: Monoid[Window[T]] = Window.monoid[T](windowSize) def zero = W28[T](WT.zero) def plus(a: W28[T], b: W28[T]): W28[T] = W28[T](WT.plus(a.window, b.window)) } } val elements = getElements()
val trailing90Totals = elements .map{ W90 } .scanLeft(W90(0)) { (a, b) => a + b } .map{ _.total }