Advertisement
Guest User

Untitled

a guest
Jul 20th, 2014
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 0.46 KB | None | 0 0
  1. type CounterMessage =
  2.   | Update of float
  3.   | Reset
  4.  
  5. let counter = MailboxProcessor.Start(fun agent ->
  6.     let rec loop sum count = async {
  7.       let! msg = agent.Receive()
  8.       match msg with
  9.       | Reset -> return! loop 0.0 0.0
  10.       | Update value ->
  11.           let sum, count = sum + value, count + 1.0
  12.           printfn "Average: %f" (sum / count)
  13.           do! Async.Sleep(1000)
  14.           return! loop sum count
  15.     }
  16.     loop 0.0 0.0)
  17.  
  18.  
  19. couter.Post(Update, 10.0)
  20. couter.Post(Reset)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement