无法执行基本算术

时间:2015-11-19 23:22:07

标签: f#

在F#中,我在编写以下代码时收到错误:

let records = {1..100}
let middleElement= records |> Seq.length / 2
  

类型' int'不符合类型'' a - > INT'

我知道这个错误是基本的。 但我是F#的新手,并且真的不知道我需要做些什么来解决这个错误。

2 个答案:

答案 0 :(得分:6)

您需要添加括号:

let middleElement = (records |> Seq.length) / 2

在您的版本中,编译器将您的代码读取为

let middleElement = records |> (Seq.length / 2)

...它变得混乱,因为它认为你试图将length函数除以2!

答案 1 :(得分:1)

我赞同Tomas Petricek的答案,但你也可以这样写。 : - )

let records = {1..100}
let middleElement = records |> Seq.length |> (/) <| 2

这就是说,记录下来,将它们输入长度函数。将结果作为除法(/)函数的第一个参数。这将导致一个函数接受一个int并返回一个int(int - &gt; int)。然后我们向该函数提供2以获得50.

[编辑]我刚才意识到这可能更清楚了

let records = {1..100}
let middleElement = let length = records |> Seq.length in length / 2;;