RosettaCodeData/Task/Averages-Simple-moving-average/Scala/averages-simple-moving-average.scala
2023-07-01 13:44:08 -04:00

11 lines
372 B
Scala

class MovingAverage(period: Int) {
private var queue = new scala.collection.mutable.Queue[Double]()
def apply(n: Double) = {
queue.enqueue(n)
if (queue.size > period)
queue.dequeue
queue.sum / queue.size
}
override def toString = queue.mkString("(", ", ", ")")+", period "+period+", average "+(queue.sum / queue.size)
def clear = queue.clear
}