6 people like it.
    Like the snippet!
  
  Simple Reactive Extensions Example
  Subject is a class that implements both IObservable<'T> and IObserver<'T>
  |  1: 
 2: 
 3: 
 4: 
 5: 
 6: 
 7: 
 8: 
 9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
 | // Rx 1.0:
//#r "System.CoreEx" //for interactive and scripts
//#r "System.Reactive.dll" 
//open System
//open System.Collections.Generic
//Rx 2.1:
#r "System.ComponentModel.Composition.dll"
#r "../packages/Rx-Interfaces.2.1.30214.0/lib/Net45/System.Reactive.Interfaces.dll"
#r "../packages/Rx-Core.2.1.30214.0/lib/Net45/System.Reactive.Core.dll"
#r "../packages/Rx-Linq.2.1.30214.0/lib/Net45/System.Reactive.Linq.dll"
open System.Reactive.Subjects
// ---
let observable = new Subject<int>()
let mySubscribe =
    let interested = observable |> Observable.filter (fun x -> x%2=0)
    interested.Subscribe(fun i -> Console.WriteLine("Hello " + i.ToString()))
let myYields =
    observable.OnNext(1)
    observable.OnNext(2)
    observable.OnNext(3)
    observable.OnNext(4)
 | 
namespace System
namespace System.Reactive
namespace System.Reactive.Subjects
val observable : Subject<int>
Full name: Script.observable
Multiple items
type Subject =
  static member Create<'TSource, 'TResult> : observer:IObserver<'TSource> * observable:IObservable<'TResult> -> ISubject<'TSource, 'TResult>
  static member Synchronize<'TSource, 'TResult> : subject:ISubject<'TSource, 'TResult> -> ISubject<'TSource, 'TResult> + 1 overload
Full name: System.Reactive.Subjects.Subject
--------------------
type Subject<'T> =
  new : unit -> Subject<'T>
  member Dispose : unit -> unit
  member HasObservers : bool
  member OnCompleted : unit -> unit
  member OnError : error:Exception -> unit
  member OnNext : value:'T -> unit
  member Subscribe : observer:IObserver<'T> -> IDisposable
Full name: System.Reactive.Subjects.Subject<_>
--------------------
Subject() : unit
Multiple items
val int : value:'T -> int (requires member op_Explicit)
Full name: Microsoft.FSharp.Core.Operators.int
--------------------
type int = int32
Full name: Microsoft.FSharp.Core.int
--------------------
type int<'Measure> = int
Full name: Microsoft.FSharp.Core.int<_>
val mySubscribe : System.IDisposable
Full name: Script.mySubscribe
val interested : System.IObservable<int>
module Observable
from Microsoft.FSharp.Control
val filter : predicate:('T -> bool) -> source:System.IObservable<'T> -> System.IObservable<'T>
Full name: Microsoft.FSharp.Control.Observable.filter
val x : int
member System.IObservable.Subscribe : callback:('T -> unit) -> System.IDisposable
System.IObservable.Subscribe(observer: System.IObserver<int>) : System.IDisposable
val i : int
System.Int32.ToString() : string
System.Int32.ToString(provider: System.IFormatProvider) : string
System.Int32.ToString(format: string) : string
System.Int32.ToString(format: string, provider: System.IFormatProvider) : string
val myYields : unit
Full name: Script.myYields
Subject.OnNext(value: int) : unit
  
  
  More information