Advertisement
Guest User

Untitled

a guest
Jan 12th, 2012
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //Vaatii rx-kirjaston: http://msdn.microsoft.com/en-us/data/gg577609
  2. //Asentuu program filesin alle Microsoft Cloud Programmability\Reactive Extensions
  3. module RxTesti //Tätä riviä ei interactiveen
  4.  
  5. //Nää ei interactiveen:
  6. //#r "System.CoreEx"
  7. //#r "System.Reactive.dll"
  8. open System
  9. open System.Collections.Generic
  10.  
  11. let havainnoitsija = new Subject<string*int*int>()
  12.  
  13. let munSynkkaus =
  14.     let muaKiinnostaa = havainnoitsija //havainnoitsija on lista kaikista maailman hiirien siirroista.
  15.                         //Async-logiikka voidaan kirjottaa tähän ihan kuten synkroninen koodi,
  16.                         //yhdistelemällä kissojen ja hiirien liikkeitä linq-tyylisesti
  17.                         //esim. "vain disney-hiiret kiinnosta":
  18.                         |> Observable.filter(fun (nimi,_,_) -> nimi.StartsWith("M")) //kuten "where"
  19.                         |> Observable.map( //kuten "select"
  20.                             fun (nimi,x,y) -> nimi + " meni paikkaan " + x.ToString() + "," + y.ToString()
  21.                            )
  22.     muaKiinnostaa.Subscribe(fun (s:string) -> Console.WriteLine(s))
  23.  
  24. let siirräHiiri nimi (x,y) = havainnoitsija.OnNext(nimi,x,y)
  25. let myYields =
  26.     async {
  27.         siirräHiiri "Mikki" (1,2)
  28.         siirräHiiri "Minni" (2,2)
  29.         siirräHiiri "Logitech" (4,5)
  30.         siirräHiiri "Mikki" (3,2)
  31.     } |> Async.RunSynchronously
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement