Anonymous user
Averages/Simple moving average: Difference between revisions
Provided an F# implementation
mNo edit summary |
(Provided an F# implementation) |
||
Line 546:
2 3.8
1 3.0</lang></div>
=={{header|F_Sharp|F#}}==
<lang fsharp>let sma period f (list:float list) =
let sma_aux queue v =
let q = Seq.truncate period (v :: queue)
Seq.average q, Seq.toList q
List.fold (fun s v ->
let avg,state = sma_aux s v
f avg
state) [] list
printf "sma3: "
[ 1.;2.;3.;4.;5.;5.;4.;3.;2.;1.] |> sma 3 (printf "%.2f ")
printf "\nsma5: "
[ 1.;2.;3.;4.;5.;5.;4.;3.;2.;1.] |> sma 5 (printf "%.2f ")
printfn ""</lang>
Output:<pre>sma3: 1.00 1.50 2.00 3.00 4.00 4.67 4.67 4.00 3.00 2.00
sma5: 1.00 1.50 2.00 2.50 3.00 3.80 4.20 4.20 3.80 3.00</pre>
=={{header|Forth}}==
|