How can you do in RX a simple, stateful transform of a sequence?
Say we want to make an exponential moving average transform of a IObservable noisySequence.
Thanks! Here is a solution using Scan
const double lambda = 0.99;
IObservable emaSequence = noisySequence.Scan(Double.NaN, (emaValue, value) =>
{
if (Double.IsNaN(emaValue))
{
emaValue = value;
}
else
{
emaValue = emaValue*lambda + value*(1-lambda);
}
return emaValue;
}).Select(emaValue => emaValue);