F#1到100代码样本的RX和
我正在学习RX(反应式扩展),我试图使用一些来自互联网的代码示例,源代码是C#:F#1到100代码样本的RX和,f#,F#,我正在学习RX(反应式扩展),我试图使用一些来自互联网的代码示例,源代码是C#: var输入=可观测范围(1100); Subscribe(x=>Console.WriteLine(“总和是{0}”,x)); 因为我不会说C,所以我想用F来做同样的事情。 我下载RX,创建一个F#windows应用程序,添加对System.Reactive的引用。我的IDE是VS2010终极版,RX版本是:1.1.11111 这是我的密码: #light open System open System.Coll
var输入=可观测范围(1100);
Subscribe(x=>Console.WriteLine(“总和是{0}”,x));
因为我不会说C,所以我想用F来做同样的事情。
我下载RX,创建一个F#windows应用程序,添加对System.Reactive的引用。我的IDE是VS2010终极版,RX版本是:1.1.11111
这是我的密码:
#light
open System
open System.Collections.Generic
open System.ComponentModel
open System.Linq
open System.Text
open System.Reactive
open System.Reactive.Linq
let input = Observable.Range(1, 100)
let x = input.Sum().Subscribe()
printfn "%A" x
结果应该是5050,因为1到100的和是5050。然而,我只能看到这一点:
System.Reactive.AutoDetachObserver`1[System.Int32]
请让我知道如何看到5050的结果。
我希望C代码也能在F中工作。如果没有,请让我知道我能做什么。
谢谢大家,新年快乐 Subscribe方法将函数作为其参数(
x=>foo
是C#中的匿名函数(lambda表达式))。所以你也应该用一个函数作为它的参数来调用它:
let input = Observable.Range(1, 100)
input.Sum().Subscribe(fun x -> printfn "%A" x)
或
您可以将lambda缩短为
printfn“%A”
。谢谢!代码可以工作,所以我认为大多数RX的东西也可以在F#中工作,而不仅仅是在C#中。祝你新年快乐!
let input = Observable.Range(1, 100)
input.Sum().Subscribe(printfn "%A")