RosettaCodeData/Task/Averages-Simple-moving-average/Scala/averages-simple-moving-average.scala
2013-04-10 14:58:50 -07: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
}