28 lines
443 B
Text
28 lines
443 B
Text
func avg(xs) {
|
|
var acc = 0.0
|
|
var c = 0
|
|
for x in xs {
|
|
c += 1
|
|
acc += x
|
|
}
|
|
acc / c
|
|
}
|
|
|
|
func sma(p) {
|
|
var s = []
|
|
x => {
|
|
if s.Length() >= p {
|
|
s.RemoveAt(0)
|
|
}
|
|
s.Insert(s.Length(), x)
|
|
avg(s)
|
|
};
|
|
}
|
|
|
|
var nums = Iterator.Concat(1.0..5.0, 5.0^-1.0..1.0)
|
|
var sma3 = sma(3)
|
|
var sma5 = sma(5)
|
|
|
|
for n in nums {
|
|
print("\(n)\t(sma3) \(sma3(n))\t(sma5) \(sma5(n))")
|
|
}
|