F#:预期'in'或其他令牌错误

E D*_*awg 3 f# visual-studio-2013

所以我在F#中编写了一个非常简单的程序,它应该将所有3和5的倍数加在1000以下:

[1..999]
|> List.filter (fun x -> x % 3 = 0 || x % 5 = 0)
|> let total = List.sum`
Run Code Online (Sandbox Code Playgroud)

但是,在程序的最后,我收到以下错误:

Unexpected end of input in expression. Expected 'in' or other token.
Run Code Online (Sandbox Code Playgroud)

我使用轻量级语法,所以我不确定为什么F#会要我使用'in'语句.有什么想法吗?

Gus*_*Gus 6

你可能打算这样做:

let total = 
  [1..999]
  |> List.filter (fun x -> x % 3 = 0 || x % 5 = 0)
  |> List.sum
Run Code Online (Sandbox Code Playgroud)

您获得的错误消息是因为它期望在正向管道之后的函数,您可以具有let绑定但作为期望至少一个参数的函数的一部分.