F#can';不带管道的折叠?

F#can';不带管道的折叠?,f#,f#-interactive,F#,F# Interactive,我正忙着学习F#,正在玩Seq.fold。有人能解释一下为什么下面两个调用本质上是不同的,一个是错误的,另一个不是 以这种方式调用: Seq.fold (fun state input -> state + input) 0 Seq.ofList [1;2;3;4;5];; 导致以下错误: error FS0001: This expression was expected to have type ''a -> 'b' but here has type 'int

我正忙着学习F#,正在玩
Seq.fold
。有人能解释一下为什么下面两个调用本质上是不同的,一个是错误的,另一个不是

以这种方式调用:

Seq.fold (fun state input -> state + input) 0 Seq.ofList [1;2;3;4;5];;
导致以下错误:

error FS0001: This expression was expected to have type
    ''a -> 'b'
but here has type
    'int'
使用管道进行调用工作正常:

Seq.ofList [1;2;3;4;5] |> Seq.fold (fun state input -> state + input) 0;;

我猜我不知何故使用了一个泛型函数,并强制它仅为int。

您正在将Seq.ofList作为第三个参数传递给Seq.fold。您需要添加一些参数:


Seq.fold(趣味状态输入->状态+输入)0(Seq.ofList[1;2;3;4;5])

您正在将Seq.ofList作为第三个参数传递给Seq.fold。您需要添加一些参数:


Seq.fold(趣味状态输入->状态+输入)0(Seq.ofList[1;2;3;4;5])

列表的顺序不是强制性的。 你可以直接写:

Seq.fold (fun state input -> state + input) 0 [1;2;3;4;5]
或:


序列号列表不是强制性的。 你可以直接写:

Seq.fold (fun state input -> state + input) 0 [1;2;3;4;5]
或:

我只能说“Doh!”。谢谢我只能说“Doh!”。谢谢