如何基于现有的C#片段在F#中创建可观察的函数?

fit*_*ims 0 c# f# reactive-programming c#-to-f#

我想将以下代码转换为F#:

static void Main(string[] args)
{
    var y = Observable.Create<int>(x =>
        {
            x.OnNext(5);
            return (() => { });
        });

    y.Subscribe(x => Console.WriteLine(x));
}
Run Code Online (Sandbox Code Playgroud)

尝试了以下内容:

let ob = Observable.Create<int>(fun x -> 
                                    x.OnNext(5)
                                    fun unit -> unit)  
Run Code Online (Sandbox Code Playgroud)

但没有成功.我该怎么办?

Dan*_*iel 6

let observable = Observable.Create(fun (x: IObserver<_>) ->
  x.OnNext(5)
  Action(ignore))

observable.Subscribe(printfn "%d") |> ignore
Run Code Online (Sandbox Code Playgroud)


Ast*_*sti 6

如果无法取消Observable(通常是同步时),使用单例会更有效 Disposable.Empty

Observable.Create(fun (o : IObserver<_>) -> 
    o.OnNext(5)
    Disposable.Empty
)
Run Code Online (Sandbox Code Playgroud)