Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F#1到100代码样本的RX和_F# - Fatal编程技术网

F#1到100代码样本的RX和

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

我正在学习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.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")