在F#,收到错误时,我写入以下代码:无法执行基本的算术运算
let records = {1..100}
let middleElement= records |> Seq.length/2
类型“INT”不匹配的类型“”一 - > INT”
我知道这个错误是基本的。 但我是F#的新手,真的不知道我需要做什么来解决这个错误。
在F#,收到错误时,我写入以下代码:无法执行基本的算术运算
let records = {1..100}
let middleElement= records |> Seq.length/2
类型“INT”不匹配的类型“”一 - > INT”
我知道这个错误是基本的。 但我是F#的新手,真的不知道我需要做什么来解决这个错误。
您需要添加括号:
let middleElement = (records |> Seq.length)/2
在您的版本中,编译器将读取你的代码
let middleElement = records |> (Seq.length/2)
...它会很困惑,因为它认为你正试图分裂通过2的功能length
!
我赞同Tomas Petricek的回答,但你也可以这样写。 :-)
let records = {1..100}
let middleElement = records |> Seq.length |> (/) <| 2
这就是说,把记录,喂给他们的长度函数。将结果作为除法(/)函数的第一个参数提供。这将导致一个函数接受一个int并返回一个int(int - > int)。然后,我们喂2到功能得到50
[编辑]我才意识到,这可能是更清楚
let records = {1..100}
let middleElement = let length = records |> Seq.length in length/2;;