Anonymous user
Averages/Simple moving average: Difference between revisions
→{{header|Julia}}
(→{{header|Java}}: consistent formatting) |
|||
Line 2,008:
=={{header|Julia}}==
{{works with|Julia|0.6}}
The function wants specified the type of the data in the buffer and, if you want, the limit of the buffer.
<lang julia>function movingaverage(::Type{T} = Float64; lim::Integer = -1) where T<:Real
buffer = Vector{T}(0)
if lim == -1
push!(buffer, y)
▲ x -> begin
return
end
if length(buffer) == N+1 shift!(buffer) end▼
else
mean(buffer)▼
# limited size buffer
return (y) -> begin
{{Out}}▼
push!(buffer, y)
end
end
end
test = movingaverage()
@show test(1.0) # mean([1])
@show test(2.0) # mean([1, 2])
@show test(3.0) # mean([1, 2, 3])</lang>
<pre>test(1.0) = 1.0
test(2.0) = 1.5
test(3.0) = 2.0</pre>
=={{header|K}}==
|