在F#中,我在编写以下代码时收到错误:
let records = {1..100}
let middleElement= records |> Seq.length / 2
类型' int'不符合类型'' a - > INT'
我知道这个错误是基本的。 但我是F#的新手,并且真的不知道我需要做些什么来解决这个错误。
答案 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;;