Averages/Simple moving average: Difference between revisions

Content deleted Content added
Added a second example
add julia example
Line 1,529: Line 1,529:
Next number = 1, SMA_3 = 2, SMA_5 = 3</pre>
Next number = 1, SMA_3 = 2, SMA_5 = 3</pre>


=={{header|Julia}}==

A short version that buffers all numbers seen from the start.
<lang Julia>SMA(N) = let buffer = Number[]
x -> (push!(buffer, x) ; mean(buffer[max(1,end-N+1):end]))
end</lang>
A version with a buffer of size at most N. An initial value can be
provided for the buffer.
<lang Julia>SMA(N, buffer = Number[]) =
x -> begin
push!(buffer, x)
if length(buffer) == N+1 shift!(buffer) end
mean(buffer)
end</lang>
{{Out}}
<pre>julia> test = SMA(3) ; test(1), test(2), test(3), test(4), test(5)
(1.0,1.5,2.0,3.0,4.0)</pre>


=={{header|Lasso}}==
=={{header|Lasso}}==